我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
.
.
.
.
Run Code Online (Sandbox Code Playgroud)
它是一个相当大的清单。但我希望您专注于子目录,例如桌面。它的大小显示为 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
.
.
.
Run Code Online (Sandbox Code Playgroud)
du -sh ~/Desktop命令的输出
80M /home/rahul/Desktop
Run Code Online (Sandbox Code Playgroud)
M. *_*rra 12
ls -lS确实显示了目录的真实大小:目录本身+对给定目录中包含的任何文件的引用。
您可以使用du代替ls:
du -h --max-depth=1 | sort -hr
Run Code Online (Sandbox Code Playgroud)
du: 递归地估计目录的文件空间使用情况
h: 人类可读
--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”,而不是指向文件的大小。)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。