![Bash 脚本帮助,检查文件夹中所有文件的权限 755](https://linux22.com/image/881597/Bash%20%E8%84%9A%E6%9C%AC%E5%B8%AE%E5%8A%A9%EF%BC%8C%E6%A3%80%E6%9F%A5%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%E7%9A%84%E6%9D%83%E9%99%90%20755.png)
我正在尝试创建一个 bash 脚本,检查特定文件夹 (/tmp) 的所有文件是否具有权限 755。我还需要它来删除所有没有权限值 755 的文件。
我到目前为止尝试过这个,但没有成功:
#!/bin/bash
for filename in 'ls'
do
if [ -perm 0755 "$filename" ]
then echo "Files with 755 permission: $filename"
else rm "$filename"
fi
done
echo "###DONE###"
如果您能提供任何帮助,我们将不胜感激!:-)
答案1
以下脚本应该执行您想要的操作:它在您调用它的目录中运行:
#!/bin/bash
echo "###START###"
for filename in *
do
if [ $(stat -c "%a" "$filename") == "755" ]
then
echo "Files with 755 permission: $filename"
else
echo "REMOVING: $filename"
rm "$filename"
fi
done
echo "###DONE###"
答案2
您的脚本可以简单地包含以下内容:
#!/bin/bash
echo "Files with 755 permission:"
find . -perm 755
echo "Deleting all other files"
find . -not -perm 755 -delete
echo "Done"
请注意,它将删除当前目录及其下的所有目录中的文件。它还会在没有任何警告的情况下删除除 755 以外的任何权限,因此请谨慎使用。