繁体   English   中英

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

试试这个代码。 如果您遇到权限问题,请使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM