[英]Delete File having write permission in linux
我想创建一个 shell 脚本来删除所有具有特定权限的文件和子目录,例如仅对所有用户具有写入权限或写入和读取权限。
我试过这个
echo "deleting files with write permission"
for file in [find -perm -222]
do
rm $file
done
echo "FIles Deleted"
您的语法已关闭; [
不运行新命令,它只是测试它的参数是否为非空。
find
本身有一个删除它找到的东西的选项,所以可能会使用它。
find -type f -perm -222 -print -delete
我猜您只需要常规文件( -type f
),尽管-delete
也可以处理目录。 -print
导致文件在被删除之前被打印。
(实际上,您的语法只是在标记[find
、 -perm
和-222]
循环; for
的参数只是字符串。如果您想在那里运行命令,语法将是for file in $(command ...)
但这也是不好的做法,因为如果command
输出不是单个标记的文件名,它会中断。)
试试这个代码。 如果您遇到权限问题,请使用sudo su
。
echo "Deleting files with write permission"
for file in $(find -perm -222 -type f)
do
rm $file
done
echo "Files Deleted"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.