我需要列出任何目录中公众可读的所有文件。例如权限为777、444、604等的文件,该怎么办呢?
答案1
考虑目录的权限也很重要。系统可能具有全世界可读的文件,但除所有者和/或组之外的任何人都无法读取或遍历该目录,这仍然会使文件实际上不可读。
如果这并不重要,并且您知道每个人都有权读取和遍历该目录:
find /path/to/directory -type f -perm -o=r
这也将递归到子目录中。如果只想要第一层目录:
find /path/to/directory -maxdepth 1 -type f -perm -o=r
您可以调整后面的数字-maxdepth
来确定您想要移动的距离。
答案2
搜索某人(其所有者、其组或其他任何人)可读的文件
find . -type f -perm /u=r,g=r,o=r
如果你想找到可读的文件其他的在目录中/var
~] find /var -type f -perm /o=r -ls
131113 4 -rw-r--r-- 1 root root 2329 Nov 9 23:32 /var/spool/postfix/etc/localtime
131150 4 -rw-r--r-- 1 root root 66 Nov 18 13:45 /var/spool/postfix/etc/resolv.conf
131084 16 -rw-r--r-- 1 root root 12813 Nov 9 23:32 /var/spool/postfix/etc/services
131151 4 -rw-r--r-- 1 root root 251 Nov 9 23:32 /var/spool/postfix/etc/hosts
131111 4 -rw-r--r-- 1 root root 510 Nov 9 23:32 /var/spool/postfix/etc/nsswitch.conf
131110 4 -rw-r--r-- 1 root root 9 Nov 9 23:32 /var/spool/postfix/etc/host.conf
132498 196 -rw-r--r-- 1 root root 197624 Nov 9 23:24 /var/spool/postfix/etc/ssl/certs/ca-certificates.crt
131169 52 -rw-r--r-- 1 root root 51736 Feb 6 2019 /var/spool/postfix/lib/x86_64-linux-gnu/libnss_nisplus-2.24.so
131125 20 -rw-r--r-- 1 root root 18880 Feb 6 2019 /var/spool/postfix/lib/x86_64-linux-gnu/libnss_hesiod-2.24.so
131124 28 -rw-r--r-- 1 root root 26960 May 1 2019 /var/spool/postfix/lib/x86_64-linux-gnu/libnss_dns-2.28.so
131167 28 -rw-r--r-- 1 root root 26952 Oct 2 14:47 /var/spool/postfix/lib/x86_64-linux-gnu/libnss_dns-2.31.so
.
.
.
ls
- 在标准输出上以 ls -dils 格式列出当前文件