題 使用終端列出當前文件夾文件夾的大小?


我想要一個當前目錄中的文件夾列表或我指定的文件夾的大小。

我嘗試過du但我只得到我指定的目錄(du ./f1)的大小,並且ls沒有顯示文件夾的大小。

如何在沒有任何腳本的情況下執行此操作?


108
2017-08-03 17:58


起源


不要聽起來像混蛋,但'男人';) - Jakub
謝謝;-)但我已經嘗試過,找不到任何東西。並嘗試Googling du! - kevin


答案:


如果要顯示當前目錄中的所有目錄:

$ du -sh */
788K    foo/
500K    bar/
931K    baz/

要從另一個目錄開始顯示它們:

$ du -sh /path/to/dir/*/
48K     /path/to/dir/dir1/
4.0K    /path/to/dir/dir2/
6.7M    /path/to/dir/dir3/
20K     /path/to/dir/dir4/
8.0K    /path/to/dir/dir5/
44K     /path/to/dir/dir6/

如果要確保包含名稱以點開頭的目錄,請執行此操作 shopt -s dotglob 第一。


179
2017-08-03 18:29



謝謝所有的好答案,但這個是最簡單的答案。我忘了結束/在我的測試中。 - kevin
其中-s表示總結,顯示總數,-h表示人類可讀 - wranvaud
按大小排序文件夾: du -s */ | sort -n。 - Anton Tarasenko
@AntonTarasenko: 排序人類可讀的大小 - Dennis Williamson
@AntonTarasenko: shopt -s dotglob  DOC - Dennis Williamson


在Mac上, - max-depth選項被-d [depth]取代。因此,要查看根驅動器的人類可讀列表以及2級深度,請使用以下內容:

du -hd 2 /* 

注意:此命令將從根目錄中公開前兩個目錄級別。 這包括遍歷您的捲中的一個級別,並列出每個附加卷中每個頂級目錄的摘要大小。根據您附加的內容,此命令可能需要一些時間才能完成。


16
2018-03-02 05:23





另一個方法是--max-depth選項。

du -h --max-depth=1 .

將列出當前文件夾下的所有目錄和文件的大小。

深度2將列出另一個級別的文件夾。


12
2017-08-03 19:32



在Mac上,它是 du -hd 2 . 2級深度。 - Ryan
沒錯。也可能在FreeBSD上。謝謝(你的)信息。 - matthias krull


嘗試:

$ du -s ./f1

要么

$ du -sh ./f1

更友好的可讀尺寸。


5
2017-08-03 18:09





$ du --max-depth=1 /var/www/ | sort -n -r


2
2018-06-30 15:39



在使用現有答案添加舊問題的答案時,最好解釋一下您的答案是如何不同的,並包含一些解釋,以便它不僅僅是命令答案。 - Jason Aller
你可以擴展你的答案來解釋參數的作用嗎? - fixer1234


值得一提的是 NCurses磁盤使用情況 shell命令。

Ncdu是一個帶有ncurses接口的磁盤使用分析器。它是   旨在查找您沒有的遠程服務器上的太空豬   整個圖形設置可用,但它甚至是一個有用的工具   常規桌面系統。 Ncdu旨在快速,簡單且易於使用,   並且應該能夠在任何類似POSIX的環境中運行   安裝ncurses。


1
2018-06-12 12:26





這是一個POSIX腳本,可以使用:

  • 一份文件
  • 一個目錄
  • 目錄
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'

資源


1
2018-03-27 23:47





在接受的答案的基礎上,此命​​令將顯示目錄中文件夾的大小,  還會按尺寸列出它們,以便您更容易理解:

$ du -sh */ | sort -rn

1
2018-03-02 22:17





在Mac上,您可以安裝GNU(Linux)實現 du 與Homebrew(brew install coreutils)。 然後例如:

gdu folder -shL --exclude=.git

哪裡

  • gdu 是給GNU實現的名稱 du (默認情況下,Homebrew不會隱藏 /usr/bin/du);
  • s 為指定的文件夾生成一個總計(如果要查看細分,則省略);
  • h 輸出人類可讀的大小;
  • L 遵循符號鏈接;
  • --exclude=.git 排除指定文件夾中的git目錄(這只是一個例子)。

您可以通過添加忽略更多文件夾 --exclude=blah。您還可以一次指定多個文件夾(即 gdu folder1 folder2 ...),在這種情況下,您可以使用選項將所有小計組合成單個大小 c


0
2017-09-28 15:32