列出我可以阅读的文件

时间:2018-05-27 19:56:01

标签: bash unix permissions

我想列出当前用户可以在bash中读取的所有文件。 我不确定检查它的最佳方法是什么。我正在考虑ls -l | grep <myusername>|<mygroupname>find .的内容,但这并不涉及其他权限。

另外,我正在研究NetBSD盒子。

1 个答案:

答案 0 :(得分:0)

考虑下面的2个文件,其中一个可以被用户读取,另一个不能:

[fsilveir@fsilveir tmp]$ ls -l ./test_dir/can_read.txt ./test_dir/cant_read.txt
-rw-r--r--. 1 root root 861784 May 29 20:34 ./test_dir/can_read.txt
-rwx------. 1 root root      0 May 29 20:30 ./test_dir/cant_read.txt

您可以find使用-perm选项。使用+r,您将列出您可以阅读的文件,并使用-r查找您无法阅读的文件,如下所示:

[fsilveir@fsilveir tmp]$ find . -name "*.txt" -perm -g+r 2>/dev/null
./test_dir/can_read.txt
[fsilveir@fsilveir tmp]$ 

另一种方法是使用find-readable选项,如下所示:

[fsilveir@fsilveir tmp]$ find . -name "*.txt" -readable
./test_dir/can_read.txt

[fsilveir@fsilveir tmp]$ find . -name "*.txt" ! -readable
./test_dir/cant_read.txt