2011-09-07 48 views
13

有没有办法只获取文件的所有者和组,并由unix shell中的空格分隔?在unix中查找文件的所有者

我想写一个脚本来查找目录中所有文件的所有者并打印它(以特定格式,不能使用ls -la)。

回答

18
ls -l | awk '{print $3, $4 }' 

这会做到这一点

+0

这是什么'-tr'? – sanmai

+0

您可以添加|排序| uniq的,如果你只希望不同的用户/组,而不是一个长长的清单与重复 – CPJ

+0

的TR只是我的手指抽动出于习惯 - 它通过一次订购他们,相反 – CPJ

1
ls -l | cut -f3,4 -d" " | tail -n +2 
2

GNU发现有-printf选项,这会为你做到这一点:

# if you want just the files in the directory, no recursion 
find "$dir" -maxdepth 1 -type f -printf "%u %g\n" 

# if you want all the files from here down 
find "$dir" -type f -printf "%u %g\n" 

# if you need the filename as well for disambiguation, stick a %f in there 
find "$dir" -maxdepth 1 -type f -printf "%u %g %f\n" 

其他系统可能有此作为gfind。

10

使用stat命令,只要您的UNIX版本:

$ stat -c "%U %G" /etc/passwd 
    root root 

,或者做此操作的所有目录中的文件和打印每个文件的名字:

$ stat -c "%n %U %G" *