删除 linux 中具有写入权限的文件

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 输出的文件名不是单个标记,它将中断。)