在 Linux 命令提示符中,我有一个文件夹,其中有大约 10 个具有不同权限的文件,如何在一个命令中删除所有没有所有者权限、读取、写入或执行的文件?
答案1
您可以使用命令-perm
的测试find
来根据文件的权限来识别文件。特别是,
-perm /mode Any of the permission bits mode are set for the file.
例如,
$ ls -l subdir
total 0
----r--r-- 1 steeldriver steeldriver 0 Oct 15 19:15 file0
---xr--r-- 1 steeldriver steeldriver 0 Oct 15 19:15 file1
--w-r--r-- 1 steeldriver steeldriver 0 Oct 15 19:15 file2
--wxr--r-- 1 steeldriver steeldriver 0 Oct 15 19:15 file3
-r--r--r-- 1 steeldriver steeldriver 0 Oct 15 19:15 file4
-r-xr--r-- 1 steeldriver steeldriver 0 Oct 15 19:15 file5
-rw-r--r-- 1 steeldriver steeldriver 0 Oct 15 19:15 file6
-rwxr--r-- 1 steeldriver steeldriver 0 Oct 15 19:15 file7
然后
$ find subdir ! -perm /u=rwx
subdir/file0
查找其所有者没有读、写或执行权限的文件。
一旦您确信它识别了正确的文件,您就可以添加-delete
命令来删除它们:
find subdir ! -perm /u=rwx -delete
如果愿意,您可以使用八进制700
代替符号。u=rwx