我需要提供目录中文件的详细列表下降的顺序文件大小。只为了包括10个文件在我的输出中。我不能包含子目录在我的输出中。我遇到了最后一部分的问题,到目前为止,“不包括子目录”是我所拥有的,但我坚持排除子目录。另外,如果您可以查看下面的命令来建议这是否正确
de@Classbox:~/LI_1/etc$ ls -lh -S | sort -r |head -10
我知道如果我使用grep -v d
它会排除目录,但我需要它来排除子目录。
答案1
如果您按“人类可读”文件大小排序,则不要期望得到有意义的结果。尝试
ls -l| sort -k1,1.1 -k5nr | head -n 10
如果常规文件少于10个,则需要采取额外措施。
答案2
使用zsh
外壳:
printf '%s\n' *(.OL[1,10])
这(.OL[1,10])
是一个全局修饰符它修改前面的 glob 模式 ( ) 的行为*
。在这种情况下,.
意味着它将仅匹配常规文件(即不匹配目录、套接字、fifo 等),意味着根据文件大小/长度 ( ) 按OL
降序 ( ) 排序。将返回的匹配项数量限制为前 10 个。O
L
[1,10]
要包含隐藏文件,请将GLOB_DOTS
shell 选项设置为setopt GLOB_DOTS
.