Directory
ls -lS
沒有顯示目錄的真實大小
ls -lS
我在我的主目錄中使用了命令。該命令應該按大小列出目錄的內容。這是我執行此命令後得到的total 10148 -rw-rw-r-- 1 rahul rahul 8053159 May 15 15:35 Costa_ODE.pdf -rw-rw-r-- 1 rahul rahul 1755507 May 15 17:33 gnuplot.pdf -rw-rw-r-- 1 rahul rahul 218048 May 13 22:14 out.log -rw-rw-r-- 1 rahul rahul 98131 Feb 16 01:53 hs_err_pid8639.log -rw-rw-r-- 1 rahul rahul 12364 Apr 19 14:01 Untitled 1.csv drwxr-xr-x 4 rahul rahul 12288 Jun 6 2016 cfitsio -rw-r--r-- 1 rahul rahul 8980 Feb 7 2016 examples.desktop drwxrwxr-x 2 rahul rahul 4096 Mar 10 12:24 bin drwxrwxr-x 8 rahul rahul 4096 May 8 14:51 boxfitv2 drwxrwxrwx 2 rahul rahul 4096 Jan 30 11:50 dao2 drwxrwxr-x 2 rahul rahul 4096 Mar 12 2016 deja-dup drwxr-xr-x 6 rahul rahul 4096 May 16 02:12 Desktop drwxr-xr-x 3 rahul rahul 4096 May 15 10:53 Documents drwxr-xr-x 5 rahul rahul 4096 May 8 14:09 Downloads . . . .
這是一個相當大的清單。但我希望您專注於子目錄,例如桌面。它的大小顯示為 4096 字節。但是當我嘗試查看 Desktop 的詳細資訊時,這就是我得到的。
簡而言之,該命令
ls -lS
不計算 Desktop 和其他子目錄內容的大小。有什麼辦法嗎?編輯:
ls -lsh
命令的輸出total 10M 4.0K drwxrwxr-x 2 rahul rahul 4.0K Mar 10 12:24 bin 4.0K drwxrwxr-x 8 rahul rahul 4.0K May 8 14:51 boxfitv2 4.0K -rw-rw-r-- 1 rahul rahul 3.2K May 13 13:28 c.c 12K drwxr-xr-x 4 rahul rahul 12K Jun 6 2016 cfitsio 7.7M -rw-rw-r-- 1 rahul rahul 7.7M May 15 15:35 Costa_ODE.pdf 4.0K drwxrwxrwx 2 rahul rahul 4.0K Jan 30 11:50 dao2 0 -rw-rw-r-- 1 rahul rahul 0 May 13 20:37 default.txt 4.0K drwxrwxr-x 2 rahul rahul 4.0K Mar 12 2016 deja-dup 4.0K drwxr-xr-x 6 rahul rahul 4.0K May 16 17:11 Desktop 4.0K drwxr-xr-x 3 rahul rahul 4.0K May 15 10:53 Documents 4.0K drwxr-xr-x 5 rahul rahul 4.0K May 8 14:09 Downloads 12K -rw-r--r-- 1 rahul rahul 8.8K Feb 7 2016 examples.desktop . . .
du -sh ~/Desktop
命令的輸出80M /home/rahul/Desktop
ls -lS
確實顯示了目錄的真實大小:目錄本身 + 對給定目錄中包含的任何文件的引用。您可以使用
du
而不是ls
:du -ha -d 1 | sort -hr
du
: 遞歸估計目錄的文件空間使用情況
h
: 人類可讀
a
: 所有內容,不僅僅是目錄
d 1
: max depth 1,所以你只檢查目前目錄中的目錄
sort -hr
: 遞減排序
ls
顯示正常文件的大小(或者,如果是目錄,則顯示其 inode 的大小,而不僅僅是它們的內容,因為它沒有快速確定的方法,而對於正常文件,大小是已知的,因此可以準確顯示並迅速)。實際上,該欄位因文件所代表的內容而異:
- 對於正常文件:它顯示它們的實際大小
- 對於符號連結(符號連結,
ln -s source dest
):符號連結名稱的長度(因為這是符號連結文件的內容)。(例如:符號連結/dev/fd -> /proc/self/fd
: 的目標路徑正好有 13 個字元長 (/ p r o c / s e l f / f d
),因此ls -l
將在第 5 列顯示“13”,而不是指向文件的大小。)- 對於目錄:一個 inode 的大小(如果目錄條目的內容適合一個)或多個 inode(如果需要多個 inode 來描述該目錄條目的列表)。這就是為什麼大多數人看到 4096 的原因:通常它們裡面沒有很多文件,所以它適合所有的 1 個 inode,預設情況下通常是 4096 字節。如果您曾經將許多文件放在某個目錄中,這將會上升(並且很可能會在之後保持不變,除非您重新創建目錄本身)。
- 對於管道和其他文件類型:每次通常與大小相關聯的欄位可能是也可能不是大小(例如:對於塊設備(例如:/dev/hd* 文件)它不顯示任何大小,而是顯示他們的
major, minor
一對資訊。見man mknod
。看看man ls
他們是如何被辨識的。)要知道目錄+子目錄的內容總和:
du /some/path
# 將為每個目錄顯示:其內容的總和(包括子目錄),並顯示每個目錄及其下方的內容/some/path
du -s /some/path
# 將僅顯示 1 個級別,即僅顯示 /some/path 的總數du -S /some/path
# 顯示每個目錄的內容,不包括它們的子目錄。有助於準確了解 /some/path 的哪個子目錄很大。有關詳細資訊,請參閱https://linux.die.net/man/1/du 。