我有一个包含许多文件的文件夹.这些文件已由许多不同的用户创建.我不知道shell脚本.
我需要获取文件所有者的用户名(仅限)列表.
我可以保存ls -l的输出,然后使用perl python等解析它...
但是我怎么能用shell脚本来做呢?
Dir*_*tel 10
一个简单的是
ls -l /some/dir/some/where | awk '{print $3}' | sort | uniq
Run Code Online (Sandbox Code Playgroud)
它为您提供了一个独特的排序所有者列表.
到目前为止,这两种解决方案都不错,但也有其局限性。
这应该可以保证您正确并递归地搜索目录树中的每个文件。
sudo find /some/dir/ -exec stat -c "%U" {} + | sort | uniq
Run Code Online (Sandbox Code Playgroud)
换句话说,递归搜索 中的文件/some/dir,并stat -c "%U"在文件上执行(打印用户名),以尽可能少的调用stat(-exec <cmd> {} +语法),然后当然sort是用户名列表,然后将它们剔除到unique 集用户名。
要将搜索限制为仅常规文件,请添加-type f子句:
sudo find /some/dir/ -type f -exec stat -c "%U" {} + | sort | uniq
_______
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13003 次 |
| 最近记录: |