Linux系统中如何筛选并列出具备读取权限的文件?
筛选当前用户具备读取权限的文件方法
嘿,这个需求在日常Linux操作里太常见了!给你分享几个实用的命令,轻松搞定这个问题:
最推荐的方法:用find命令的-readable测试
find命令自带的-readable参数会直接检查当前用户是否对文件/目录拥有读取权限,它会自动处理包括ACL、组权限在内的所有权限规则,结果最准确:
# 筛选指定目录下的所有可读普通文件 find /path/to/target/dir -type f -readable # 如果要同时包含可读目录,去掉-type f即可 find /path/to/target/dir -readable # 当前目录下筛选的话,用.代替路径 find . -type f -readable
精准匹配用户权限位的方法
如果你想明确只匹配**当前用户(owner)**拥有读权限的文件,可以用-perm参数指定用户权限位:
find /path/to/target/dir -type f -perm -u=r
这里的-u=r表示当前用户权限位的读权限已开启,前面的减号-表示只要满足这个权限条件即可,不需要匹配其他权限位。
补充:用ls结合awk的(局限性较大)方法
这个方法适合快速查看,但它只匹配文件所有者的读权限,无法识别组或其他用户的读权限,所以仅作参考:
ls -l | awk '$1 ~ /^.r/ && $3 == ENVIRON["USER"]'
简单总结一下,优先用find ... -readable,它是最省心也最准确的方案,能覆盖所有权限场景~
内容的提问来源于stack exchange,提问作者A srinivas
相关产品推荐
相关产品推荐

