我有一个包含许多文件的文件夹,这些文件是由许多不同的用户创建的。我不知道如何使用shell脚本。
我需要获取文件所有者的用户名(仅限用户名)列表。
我可以使用ls -l命令保存输出结果,然后使用perl、python等进行解析...
但是,如何使用shell脚本实现这一点呢?
stat -c "%U" *| sort -u
ls -l /some/dir/some/where | awk '{print $3}' | sort | uniq
sudo find /some/dir/ -exec stat -c "%U" {} + | sort | uniq
stat
调用为目标,在目录/some/dir
中递归搜索文件,并在文件上执行stat -c "%U"
(打印用户名),然后当然要sort
这些用户名的列表,再筛选出唯一的用户名集合。-type f
子句:sudo find /some/dir/ -type f -exec stat -c "%U" {} + | sort | uniq
_______
find /some/dir/ -type f -exec stat -f "%Su" {} + | sort | uniq
。OP只寻找文件,因此我添加了-type f
。 - simlev-type f
。 - CivFan
ls
命令中添加R
开关:ls -lR /some/dir/some/where | awk '{print $3}' | sort | uniq
。 - Abdullls -laR * 2>/dev/null | grep -E "^[-bcdlps][^ ][^ ][^ ][^ ][^ ][^ ][^ ][^ ][^ ] " | awk '{print $3,$4}' | sort | uniq
。任何简化都是受欢迎的... - Diggerfind /some/dir/some/where -execdir stat -c "%U" {} + | sort | uniq
。 - CivFan