如何使用命令输出的输入列出具有时间戳和大小的文件

时间:2017-03-08 10:45:29

标签: bash shell sh

请您澄清我对bash shell的疑问。我正在使用命令列出前10个文件

命令显示前10个大文件

du -ah|sort -rh|head -n 10

但它将输出列为

size  filename
3.0 MB   test.xml
.....    .......
.....    ....... 
so on

我想显示时间戳和权限,所以我正在尝试:

du -ah|sort -rh|head -n 10|xargs ls -lrt '{}'  

du -ah|sort -rh|head -n 10|awk '{print $2}'|while read i; do ls -lrt $i;done  

但他们两个都没有工作

你能告诉我吗?我只想使用du命令

1 个答案:

答案 0 :(得分:0)

ls -lSh | head -10 | awk '{print $5 " " $1 " " $6 " " $7 " " $8 " " $9}'

包括您可以使用的所有子目录:

find . -type f -exec ls -l {} \; | sort -nrk5 | head -10

这样效率不高,你得到的文件大小不是人类可读的形式,但它可以完成工作:

    [root@myserver /etc]# find . -type f -exec ls -l {} \; | sort -nrk5 | head -10 2>/dev/null
    -r--r--r-- 1 root root 7259752 Jan 30 15:32 ./udev/hwdb.bin
    -rw-r--r-- 1 root root 3703827 Jan 30 15:28 ./selinux/targeted/policy/policy.30
    -rw-r--r-- 1 root root 3703827 Jan 30 15:28 ./selinux/targeted/active/policy.kern
    -rw-r--r-- 1 root root 1394978 Jan 30 15:28 ./selinux/targeted/contexts/files/file_contexts.bin
    -rw-r--r-- 1 root root 670293 Jun  7  2013 ./services
    -rw-r--r-- 1 root root 384788 Apr 18  2016 ./vmware-tools/locations
    -rw-r--r-- 1 root root 378732 Jan 30 15:28 ./selinux/targeted/contexts/files/file_contexts
    -rw------- 1 root root 378732 Jan 30 15:28 ./selinux/targeted/active/file_contexts
    -rw-r--r-- 1 root root 368001 Apr 15  2016 ./selinux/targeted/contexts/files/file_contexts.pre
    -r--r--r-- 1 root root 346654 Jan 30 15:26 ./pki/ca-trust/extracted/openssl/ca-bundle.trust.crt