如何輸出按大小排序的所有文件/資料夾,包括隱藏的文件/資料夾

如何輸出按大小排序的所有文件/資料夾,包括隱藏的文件/資料夾


如何一次輸出所有按大小排序的檔案/目錄,包括隱藏的檔案/目錄(名稱以點開頭的檔案/目錄)?

經過目錄的大小,我的意思是目錄及其所有子目錄樹中所有檔案大小的總和。

差異為如何du -h依大小對輸出進行排序?是我請求的輸出包括全部目前目錄中的檔案和目錄 –無論隱藏與否

參考

答案1

如何輸出按大小排序的所有檔案/目錄,包括隱藏的檔案/目錄?

使用du(磁碟使用情況)命令,它是GNU 核心工具: 1

du -hs -- * .[^.]* | sort -h

.[^.]* 正規表示式確保包含隱藏檔案和目錄。

清單僅隱藏檔案和目錄,依大小遞增排序:

du -hs -- .[^.]* | sort -h

清單僅目錄– 無論是否隱藏 – 依大小遞增排序:

du -hs -- */ .[^.]*/ | sort -h

僅列出文件在目前目錄下

清單全部文件,依大小遞增排序:2

ls -AhlS | grep '^-' | tac

僅列出文件,依大小遞增排序:

ls -hldS .* | grep '^-' | tac

僅列出常規的(非隱藏)文件,依大小遞增排序:

ls -lS | grep '^-' | tac

列出文件遞迴地– 在所有子目錄樹中

問題中沒有詢問這一點,但有時您可能想要列出子目錄樹(包括當前目錄)中的所有文件,按大小排序。3

du -ah | sort -h

輸出將是子目錄和檔案的清單(可能非常長)。要將其限制為僅文件,您需要了解最大文件的文件副檔名(透過查看上述命令的輸出)。

du -ah | sort -h | grep .<file-extension>

此處您應該替換<file-extension>zippngjpg或最大檔案具有的任何檔案副檔名。

例子:

du -ah | sort -h | grep .zip
du -ah | sort -h | grep .png

參考


1 我非常感謝我的解決方案這則評論--論點標誌著選項的結束。對於非常大的文件/資料夾,
du命令可能會非常慢。考慮使用ncdu命令代替。
若要在 Debian 衍生版本(包括 Ubuntu)上安裝,請執行sudo apt install -y ncdu
在 Arch Linux(包括 MSYS2)上,運行yes | pacman -Syu ncdu
要使用它,請鍵入ncdu,然後按

2-h國旗 ls以人類可讀的方式輸出檔案大小。
-S標誌會依以下順序對輸出進行排序減少尺寸。
該管道| grep '^-'不包括目錄和符號連結。
管道| tac 反轉輸出

3 噹噹前目錄的大小是幾兆位元組而不是千兆位元組時,這可能更令人感興趣。

相關內容