如果我們需要在當前目錄下,按大小從大到小的順序列出所有文件(包括子目錄下的所有文件),那麼這裏推薦兩個方法。
方法一:使用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
對輸出進行排序。