如果我们需要在当前目录下,按大小从大到小的顺序列出所有文件(包括子目录下的所有文件),那么这里推荐两个方法。
方法一:使用zsh
和ls
如果你使用的是zsh,那么可以使用如下命令:
ls -ldU -- **/*(.OL)
其中(.OL)
有一个glob限定符,.
选择常规文件,OL
以文件大小反转顺序排列(o
升序,O
降序)。
某些操作系统对传递给命令的参数列表的大小有限制。在这些情况下,可以尝试如下命令:
autoload -U zargs
zargs ./**/*(.OL) -- ls -ldU
方法二:使用find
,du
和sort
如果你没有安装zsh
,请使用以下命令来列出完整的文件路径和排序:
find . -type f -exec du -h {} + | sort -r -h
该find
命令将递归地查找当前目录和子目录中的所有文件,du -h
显示这些文件大小,然后再使用sort
对输出进行排序。