我有一个包含许多文件的文件夹。这些文件已由许多不同的用户创建。我不知道shell脚本。
我需要获取文件所有者的用户名(仅限)列表。
我可以保存ls -l的输出,然后使用perl python等解析它......
但是我怎么能用shell脚本来做呢?
答案 0 :(得分:10)
一个简单的是
ls -l /some/dir/some/where | awk '{print $3}' | sort | uniq
它会为您提供一个独特且有序的所有者列表。
答案 1 :(得分:9)
stat -c "%U" *| sort -u
答案 2 :(得分:3)
到目前为止,这两种解决方案都很好,但有其局限性。
这应该保证您正确并递归地搜索目录树中的每个文件。
TRUE
换句话说,递归搜索sudo find /some/dir/ -exec stat -c "%U" {} + | sort | uniq
中的文件,并对文件执行/some/dir
(打印用户名),尽可能少stat -c "%U"
次调用stat
然后,当然-exec <cmd> {} +
用户名列表,所以你可以反过来剔除它们只是sort
ue用户名集。