我试图学习find
并在尝试从用户可以打印的当前目录中查找文件(如果有)时卡住了(因此该用户具有读取权限)。该命令的作用差不多:
find / -type f -user whateverUser
答案 0 :(得分:-2)
要使用grep执行此操作:
ls -o
列出当前文件夹
ls -o . */**
也会列出子文件夹,但对于每个文件,请显示完整的子路径
ls -o */** | grep -v '^d'
以排除列表中的目录
要查看“您”可以读取哪些文件,可以grep表示所有者:
ls -o . */** | grep -v '^d' | grep " $LOGNAME "
一个微妙之处在于,您可以读取所有具有组组级别r
权限或所有用户级别r
权限的文件。
包含后者很容易:
ls -o . */** | grep -v '^d' | egrep "( $LOGNAME |^.......r..)"
要包含文件,您可以通过组权限访问,但要复杂一些。未经测试,所以在这里:
GROUP_GREP=$( groups | sed 's/ /|/g' )
ls -l */** | grep -v '^d' | egrep "( $LOGNAME |^.......r..|$GROUP_GREP)"
现在,在文件名包含任何grep搜索词(例如用户名或组名)的情况下,您可能需要进行优化。