ls 命令用于显示目录的内容。 使用选项 -l,您可以列出文件和目录及其属性。
大小是显示的属性之一 ls -l
命令。 虽然您可以看到文件的大小,但它们是按字母顺序显示的。
如果要查找当前工作目录中最大或最小的文件,可以按大小对文件进行排序。
ls 命令的 -S 选项按大小对文件进行排序。
不过,你会更舒服 结合选项 -h 和 -l:
ls -lhS
为什么? 我将通过示例详细分享。
按大小对文件进行排序
Linux中有一个排序命令。 但它用于对文件内容进行排序,而不是文件本身。
您可以以长列表格式显示当前目录中的文件,以便查看它们的大小:
[email protected]:~/toto$ ls -l
total 404
-rw-rw-r-- 1 abhishek abhishek 41145 May 27 15:24 ads.txt
-rw-rw-r-- 1 abhishek abhishek 45443 May 24 09:03 apt-get.pdf
-rw-rw-r-- 1 abhishek abhishek 29983 May 27 16:07 bash.pdf
-rw-rw-r-- 1 abhishek abhishek 249773 May 26 14:56 cronjob-cheatsheet.png
-rw-rw-r-- 1 abhishek abhishek 4943 Jun 2 20:09 gnome-console-voiceover
drwxrwxr-x 4 abhishek abhishek 4096 Jun 2 22:09 letters
-rw-rw-r-- 1 abhishek abhishek 12721 May 29 12:29 members.2022-05-29.csv
-rw-rw-r-- 1 abhishek abhishek 143 May 30 12:06 routes.yaml
drwxrwxr-x 2 abhishek abhishek 4096 Jun 2 22:09 words
要按大小对文件进行排序,请使用选项 -S
使用 ls 命令。 介意它, 它是大写的 S 用于排序.
[email protected]:~/toto$ ls -ls
total 404
-rw-rw-r-- 1 abhishek abhishek 249773 May 26 14:56 cronjob-cheatsheet.png
-rw-rw-r-- 1 abhishek abhishek 45443 May 24 09:03 apt-get.pdf
-rw-rw-r-- 1 abhishek abhishek 41145 May 27 15:24 ads.txt
-rw-rw-r-- 1 abhishek abhishek 29983 May 27 16:07 bash.pdf
-rw-rw-r-- 1 abhishek abhishek 12721 May 29 12:29 members.2022-05-29.csv
-rw-rw-r-- 1 abhishek abhishek 4943 Jun 2 20:09 gnome-console-voiceover
drwxrwxr-x 4 abhishek abhishek 4096 Jun 2 22:09 letters
drwxrwxr-x 2 abhishek abhishek 4096 Jun 2 22:09 words
-rw-rw-r-- 1 abhishek abhishek 143 May 30 12:06 routes.yaml
这很好,但您可以通过添加 -h
选项。 此选项使 ls 命令的输出以人类可读格式显示文件大小。
这意味着您现在可以查看按大小排序的文件(以 KB、MB 或 GB 为单位)。
[email protected]:~/toto$ ls -lhS
total 404K
-rw-rw-r-- 1 abhishek abhishek 244K May 26 14:56 cronjob-cheatsheet.png
-rw-rw-r-- 1 abhishek abhishek 45K May 24 09:03 apt-get.pdf
-rw-rw-r-- 1 abhishek abhishek 41K May 27 15:24 ads.txt
-rw-rw-r-- 1 abhishek abhishek 30K May 27 16:07 bash.pdf
-rw-rw-r-- 1 abhishek abhishek 13K May 29 12:29 members.2022-05-29.csv
-rw-rw-r-- 1 abhishek abhishek 4.9K Jun 2 20:09 gnome-console-voiceover
drwxrwxr-x 4 abhishek abhishek 4.0K Jun 2 22:09 letters
drwxrwxr-x 2 abhishek abhishek 4.0K Jun 2 22:09 words
-rw-rw-r-- 1 abhishek abhishek 143 May 30 12:06 routes.yaml
?当两个文件大小相同时,按字母顺序排序。
以相反的顺序按文件大小列出文件
默认情况下,它被排序以将较大的文件放在顶部。 您可以颠倒顺序并在底部显示较大的文件。 放置反向选项 -r
其余的。
ls -lhSr
当您在一个目录中有大量文件(如日志文件)并且您希望查看最大的文件时,这特别有用。 您可以在屏幕上看到更大的文件,而不是向后滚动。
[email protected]:~/toto$ ls -lhSr
total 404K
-rw-rw-r-- 1 abhishek abhishek 143 May 30 12:06 routes.yaml
drwxrwxr-x 2 abhishek abhishek 4.0K Jun 2 22:09 words
drwxrwxr-x 4 abhishek abhishek 4.0K Jun 2 22:09 letters
-rw-rw-r-- 1 abhishek abhishek 4.9K Jun 2 20:09 gnome-console-voiceover
-rw-rw-r-- 1 abhishek abhishek 13K May 29 12:29 members.2022-05-29.csv
-rw-rw-r-- 1 abhishek abhishek 30K May 27 16:07 bash.pdf
-rw-rw-r-- 1 abhishek abhishek 41K May 27 15:24 ads.txt
-rw-rw-r-- 1 abhishek abhishek 45K May 24 09:03 apt-get.pdf
-rw-rw-r-- 1 abhishek abhishek 244K May 26 14:56 cronjob-cheatsheet.png
⚠️所有这些仅适用于文件,不适用于目录。 使用 ls 命令时,目录始终显示为 4 KB(块大小)。 它们的实际大小使用 du(磁盘使用)命令显示。
获取目录中最大的 10 个文件
Linux 命令行的最大优点是可以组合各种命令并获得不同的结果。
假设您想查看当前目录中的一些最大文件。 按大小对文件进行排序,然后使用带有 head 命令的管道重定向。
ls -lhS | head -11
在里面 example,我使用了 11,因为第一行显示了目录中使用的块的总数。
[email protected]:~/tutu$ ls -lhS | head -11
total 216K
-rwxr-xr-x 1 abhishek abhishek 74K Jun 2 22:09 cpufetch
-rw-rw-r-- 1 abhishek abhishek 45K Jun 2 22:38 apt-get.pdf
-rw-rw-r-- 1 abhishek abhishek 41K Jun 2 22:38 ads.txt
-rwxr-xr-x 1 abhishek abhishek 4.9K Jun 2 22:09 README.md
-rw-rw-r-- 1 abhishek abhishek 4.9K Jun 2 22:38 gnome-console-voiceover
drwxr-xr-x 2 abhishek abhishek 4.0K Jun 2 22:09 doc
drwxr-xr-x 2 abhishek abhishek 4.0K Jun 2 22:09 pictures
drwxr-xr-x 5 abhishek abhishek 4.0K Jun 2 22:09 src
-rwxr-xr-x 1 abhishek abhishek 2.8K Jun 2 22:09 CONTRIBUTING.md
-rwxr-xr-x 1 abhishek abhishek 2.4K Jun 2 22:09 cpufetch.1
您可以使用 tail 命令进行反向排序,但我认为这太多余了。
一切都在当前工作目录中完成。 如果你想在系统范围内进行,你可以从 / 开始,但你需要使用 root 权限。 但是 ls 命令不适合这种情况。 相反,使用 find 命令查找大于特定大小的文件。
在按大小排序文件时包含隐藏文件
如果添加 . (点)在文件或目录名称的开头,它在 ls 命令的正常列表视图中是隐藏的。 这些被称为隐藏文件。
许多配置文件在普通视图中是隐藏的。 在按大小排序文件时,您还应该考虑这些隐藏文件。
选项 -a 显示隐藏文件,包括特殊的 . 和 .. 目录:
ls -lahS
请注意输出中的 .member.csv 文件:
[email protected]:~/toto$ ls -lahS
total 428K
-rw-rw-r-- 1 abhishek abhishek 244K May 26 14:56 cronjob-cheatsheet.png
-rw-rw-r-- 1 abhishek abhishek 45K May 24 09:03 apt-get.pdf
-rw-rw-r-- 1 abhishek abhishek 41K May 27 15:24 ads.txt
-rw-rw-r-- 1 abhishek abhishek 30K May 27 16:07 bash.pdf
-rw-rw-r-- 1 abhishek abhishek 13K Jun 3 09:41 .member.csv
-rw-rw-r-- 1 abhishek abhishek 13K May 29 12:29 members.2022-05-29.csv
-rw-rw-r-- 1 abhishek abhishek 4.9K Jun 2 20:09 gnome-console-voiceover
drwxrwxr-x 4 abhishek abhishek 4.0K Jun 3 09:41 .
drwxr-x--- 26 abhishek abhishek 4.0K Jun 3 10:19 ..
drwxrwxr-x 3 abhishek abhishek 4.0K Jun 3 10:10 letters
drwxrwxr-x 2 abhishek abhishek 4.0K Jun 2 22:09 words
-rw-rw-r-- 1 abhishek abhishek 143 May 30 12:06 routes.yaml
按大小递归排序文件
到目前为止,您只处理了当前目录中的文件。 但是子目录中的文件呢?
如果您正在寻找当前位置中最大的文件,您还应该考虑在子目录中寻找文件。
您可以使用 ls 命令的选项 -R 列出子目录中的文件。
ls -lRS
但是,这不是正确的方法,因为它不会将所有文件排序在一起,它们是在各自的目录中排序的。
或者,您可以使用 du 命令并将其组合起来,以根据文件大小对文件进行递归排序:
du -ah | sort -hr
?很多 Linux 用户错误地使用 -s
(小写 s)选项按大小对文件进行排序。 那是错误的。 小写的 s 显示每个条目的块大小。 要排序,请使用 -S
(大写 S)。
现在您知道如何使用 ls 命令根据文件大小对文件进行排序。 我希望你在这个过程中学到了一些其他的东西。
继续订阅以获取更多 Linux 技巧和教程。