我需要按文件所有者名称的字母顺序列出当前目录中的文件。ls
有办法吗?
答案1
规范解决方案:
ls -l | sort -k3,3
单独的 3(如 '-k3')将指示sort
使用第 3 列到行尾进行排序。这允许您执行更高级的排序ls -l | sort -k3,3 -rnk5,5
,例如,它将首先按用户名对文件进行排序,然后按大小排序,最大文件优先。
与往常一样,如需更多信息,请运行man sort
。
答案2
我会用find -printf "%u %h/%f\n" | sort
答案3
我不认为有任何内置的东西,但你可以将一些黑客手段组合在一起:
find . -ls | sort -k5
-k5
这是可行的,因为在我的安装中,输出的第五列( )find
是用户名。显然这是不可移植的。
答案4
ls -l | sort -k3
3
-k3 之后 无需指定
kracekumar@python-lover:~$ ls -l /tmp | sort -k3
total 36
drwx------ 2 gdm gdm 4096 2011-10-14 08:36 orbit-gdm
drwx------ 2 gdm gdm 4096 2011-10-14 08:36 pulse- 2L9K88eMlGn7
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 keyring-4O5hSc
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 pulse-SBBBfzrceWvC
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 ssh-UkESZoNj1595
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 virtual-kracekumar.5D8Mlv
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:43 orbit-kracekumar
drwx------ 2 root root 4096 2011-10-14 08:36 pulse-PKdhtXMmr18n
drwxr-xr-x 3 www-data www-data 4096 2011-10-14 08:36 www-data-temp-aspnet-0
kracekumar@python-lover:~$ ls -l /tmp | sort -k3,3
total 36
drwx------ 2 gdm gdm 4096 2011-10-14 08:36 orbit-gdm
drwx------ 2 gdm gdm 4096 2011-10-14 08:36 pulse-2L9K88eMlGn7
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 keyring-4O5hSc
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 pulse-SBBBfzrceWvC
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 ssh-UkESZoNj1595
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 virtual-kracekumar.5D8Mlv
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:43 orbit-kracekumar
drwx------ 2 root root 4096 2011-10-14 08:36 pulse-PKdhtXMmr18n
drwxr-xr-x 3 www-data www-data 4096 2011-10-14 08:36 www-data-temp-aspnet-0
kracekumar@python-lover:~$