Linux 中列出每个文件和目录的大小并按大小排序
列出每个文件和目录的大小很好,因为它可以帮助用户根据大小对它们进行排序。根据大小对文件进行排序对于释放空间、使它们更有条理等是必要的。您可以通过命令行和图形方法来组织Linux文件系统。
它可以帮助您根据可用内容快速找到文件和目录。因此,在这篇长篇指南中,我们将解释在 Linux 中轻松列出每个目录并根据大小对其进行排序的各种方法。
Linux 中列出每个文件和目录的大小并按大小排序
您可以轻松地按照大小、名称、修改时间等列出Linux中的文件。这里我们必须根据每个文件和目录的大小对每个文件和目录进行排序。您可以使用命令行和 GUI 方法按大小对文件和目录进行排序。让我们讨论这两种方法,并看看如何根据文件的大小对文件进行排序。
命令行方法
Linux 中主要使用 ls 命令对文件进行排序。使用du和find命令,您还可以根据大小对文件进行排序。
ls 命令
ls 命令是 Linux 和 Unix 系统中列出目录内容的便捷工具。如果该命令不使用任何操作数或选项,则默认在屏幕上显示当前目录的内容。
如果 ls 命令未使用 --sort、-l 等选项,则默认情况下按字母顺序对条目进行排序。现在我们将了解如何在 Linux 中使用各种 ls 命令选项按文件大小对它们进行排序。首先,我们将列出目录中的所有文件以及与它们关联的隐藏文件。
ls -la
total 180
drwxr-x--- 20 prateek prateek 4096 Mar 3 20:42
drwxr-xr-x 3 root root 4096 Dec 24 14:50
-rw 1 prateek prateek 18171 Mar 6 18:03 .bash_history
-rw-r--r-- 1 prateek prateek 220 Dec 24 14:50 .bash_logout
-rw-r--r-- 1 prateek prateek 3771 Dec 24 14:50 .bashrc
drwx 15 prateek prateek 4096 Feb 12 14:21
drwx 18 prateek prateek 4096 Feb 12 14:21
drwxr-xr-x 2 prateek prateek 4096 Dec 24 14:56
drwxr-xr-x 4 prateek prateek 4096 Feb 18 23:38
drwxr-xr-x 2 prateek prateek 4096 Feb 20 13:09
-rw-rw-r-- 2 prateek prateek 724 Feb 27 21:25 example.txt
-rwxrwxr-x 1 prateek prateek 88 Mar 3 18:00 file.sh
drwx 2 prateek prateek 4096 Feb 13 18:28
在上面的命令中,我们使用了 -
-l - 所有文件的长列表。
-a - 包括隐藏文件。
您可以使用上述命令中的 -A 选项而不是 -a 来排除隐藏文件 (.)。
ls -lA
total 172
-rw 1 prateek prateek 18171 Mar 6 18:03 .bash_history
-rw-r--r 1 prateek prateek 220 Dec 24 14:50 .bash_logout
-rw-r--r 1 prateek prateek 3771 Dec 24 14:50 .bashrc
drwx 15 prateek prateek 4096 Feb 12 14:21
drwx 18 prateek prateek 4096 Feb 12 14:21
drwxr-xr-x 2 prateek prateek 4096 Dec 24 14:56
drwxr-xr-x 4 prateek prateek 4096 Feb 18 23:38
drwxr-xr-x 2 prateek prateek 4096 Feb 20 13:09
-rw-rw-r 2 prateek prateek 724 Feb 27 21:25 example.txt
-rwxrwxr-x 1 prateek prateek 88 Mar 3 18:00
drwx 2 prateek prateek 4096 Feb 13 18:28
在上述所有文件中,您可以看到它们的详细信息,例如大小、权限等,但所有这些都不是根据它们的大小排序的。
您可以通过在 ls 命令中使用 -s 标志来根据它们的大小列出它们,如下所示 -
Ls -laS
total 180
-rw 1 prateek prateek 18171 Mar 6 18:03 .bash_history
-rw-r--r 1 tcpdump tcpdump 11517 Feb 25 23:35 prateek.pcap
-rw 1 prateek prateek 10422 Feb 12 13:46 .viminfo
drwxr-x--- 20 prateek prateek 4096 Mar 3 20:42
drwxr-xr-x 3 root root 4096 Dec 24 14:50
drwx 15 prateek prateek 4096 Feb 12 14:21
drwx 18 prateek prateek 4096 Feb 12 14:21
drwxr-xr-x 2 prateek prateek 4096 Dec 24 14:56
drwxr-xr-x 4 prateek prateek 4096 Feb 18 23:38
drwxr-xr-x 2 prateek prateek 4096 Feb 20 13:09
从上面的输出中可以看到,它列出了从最大到最小(降序)的所有文件。您可以使用 -r 标志将这些文件从小到大排序(升序)。这里-r表示倒序。
ls -laSr
total 180
-rW-r--r-- 1 prateek prateek 0 Dec 24 14:57 .sudo_as_admin_successful
-rW-rW-r-- 1 prateek prateek 16 Mar 4 19:14 myfile.txt
-rW 1 prateek prateek 20 Feb 13 21:11 .lesshst
-rW-rW-r 1 prateek prateek 34 Feb 28 20:34 Linux.txt
-rWXrWXr-x 1 prateek prateek 54 Feb 25 14:55 source.sh -
rW-rW-r 1 prateek prateek 66 Jan 27 19:03 .selected editor
-rW-rW-r 1 prateek prateek 76 Feb 28 20:11 Linuxl.txt
-rWXrWXr-x 1 prateek prateek 88 Mar 3 18:00
-rW-r--r 1 prateek prateek 220 Dec 24 14:50 .bash_logout
-rW-rW-r 2 prateek prateek 724 Feb 27 21:25 tutorials.txt
通过上述命令,您还可以使用 -R 标志递归列出子目录。
ls -laSrR
46F505F43
-rw 1 prateek prateek 311803E9D 10884 Dec 26 21:01 OBB2OCB4AAAA42A943D95DBAED3CE2
-rw 1 prateek prateek 0676BB5A1 10888 Dec 26 21:01 A68B2B01F4C5FD751C8FAAACCC3B17
-rw 1 prateek prateek E8F6A55609 10888 Dec 26 21:01 40328257F373FC856156C6F048B053
-rw 1 prateek prateek 53D066F16 10892 Dec 26 21:01 B675C5F5FFACF874E705146520BEB2
-rw 1 prateek prateek 135B5554CD 10893 Feb 2 22:29 EA34D1B92FA40A8D3F43ABF2B47213
-rw 1 prateek prateek 1F53F3458E 10893 Dec 26 21:01 C59AA89A6D8D512BA32E39B847E2C3
-rw 1 prateek prateek 20217CC51 10893 Dec 26 21:01 57419DD3200B2512D029506439BE37
您可以使用 -h 选项以人类可读的格式显示这些输出中的文件大小。
ls -laSrRh
46F505F43
-rw 1 prateek prateek 311803E9D 11K Dec 26 21:01 OBB2OCB4AAAA42A943D95DBAED3CE2
-rw 1 prateek prateek 0676BB5A1 11K Dec 26 21:01 A68B2B01F4C5FD751C8FAAACCC3B17
-rw 1 prateek prateek E8F6A55609 11K Dec 26 21:01 40328257F373FC856156C6F048B053
-rw 1 prateek prateek 53D066F16 11K Dec 26 21:01 B675C5F5FFACF874E705146520BEB2
-rw 1 prateek prateek 135B5554CD 11K Feb 2 22:29 EA34D1B92FA40A8D3F43ABF2B47213
-rw 1 prateek prateek 1F53F3458E 11K Dec 26 21:01 C59AA89A6D8D512BA32E39B847E2C3
-rw 1 prateek prateek 20217CC51 11K Dec 26 21:01 57419DD3200B2512D029506439BE37
在上面的输出中,您可以看到文件的单位大小以千字节 (K) 为单位打印。默认情况下,它仅打印文件大小(以千字节为单位)。您还可以以特定单位显示文件大小,例如千兆字节、兆字节等。为此,请使用以下命令 -
ls -laSrRh --block-size=M
total 1M
-rW-r--r-- 1 prateek prateek OM Dec 24 14:57 .sudo_as_admin_successful
-rW-rw--r-- 1 prateek prateek 1M Mar 4 19:14 myfile.txt -
-rw---- 1 prateek prateek 1M Feb 13 21:11 .lesshst
-rw-rw-r--- 1 prateek prateek 1M Feb 28 20:34 Linux.txt
-rwxrwxr-x 1 prateek prateek 1M Feb 25 14:55 soruc.sh
-rw-rw-r--- 1 prateek prateek 1M Jan 27 19:03 .selected_editor
-rw-rw-r--- 1 prateek prateek 1M Feb 28 20:11 Linuxl.txt
在上面的命令中,我们显示了文件大小(以兆字节 (M) 为单位)。使用以下命令按大小对所有文件进行排序时,您还可以排除目录 -
ls -laSrRh | grep -v '^d'
16K -rw FE23745F2C8 prateek prateek Feb 25 14:46 CB77C383B7CB98DBBF1B72834482
16K -rw A173A37ADFFD prateek prateek Feb 7 13:59 CB570E0E6B203DA159A3299C1CBC
20K -rw 70EFB03EECE prateek prateek Feb 2 21:39 CB4E5366CE0DA21FE2642B99C61B
76K -rw ED96AC4CAEB prateek prateek Feb 28 20:02 CB262BB6FA06C62CE4CE9464940D
52K -rw Q9B16E211B07 prateek prateek Feb 27 21:26 CB259E3298B967ABA5782E6B1D38
12K -rw 135B5554CD prateek prateek Dec 26 21:01 CB1080EDCC82BFOFB11A6023E173
杜指挥部
通过du命令,还可以按指定的文件参数对文件进行排序。要通过 du 命令根据目录和文件的大小对目录和文件进行排序,请使用以下命令 -
du -ah | sort -h
4.0K ./snap/root-framewor /910/.local/s are/mime/application/vnd.oasis.open'o cument.graphics-template.xml
4.0K ./snap/root-framework/910/.1ocal/share/mime/application/vnd.oasis.opendo cument.graphics.xml
4.0K ./snap/root-framework/910/.1ocal/share/mime/application/vnd.oasts.opendo cument.image.xml
4.0K ./snap/root-framework/910/.1ocal/share/mime/application/vnd.oasts.opendo cument.presentation-flat-xml.xml
4.0K ./snap/root-framework/910/.1ocal/share/mime/application/vnd.oasis.opendo cument.presentation-template.xml
4.0K ./snap/root-framework/910/.1ocal/share/mime/application/vnd.oasis.opendo cument..resentation.xml
在上面的命令中,-a 显示每个文件以及目录的大小。
通过du命令,还可以通过设置文件和目录的级别对文件和目录进行排序。例如,如果您只想将文件排序到第一级,则使用以下命令 -
du -ah --max-depth=1 | sort -h
注意 - 如果您想按降序对文件大小进行排序,请在上述命令中添加 -r 标志。
通过上述方法只能对整个目录(包括其文件)进行排序。因此该方法对于单个文件无效。如果您只需要按目录大小对目录进行排序,则可以使用以下“du”命令,如下所示 -
du -h | sort -h
4.0K ./.cache/evolution/addressbook/trash
4.0K ./.cache/evolution/calendar/trash
4.0K ./.cache/evolution/mail/trash
4.0K ./.cache/evolution/memos/trash
4.0K ./.cache/evolution/sources/trash
4.0K ./.cache/evolution/tasks/trash
4.0K ./.cache/gnome-desktop-thumbnailer/gstreamer-1.0
4.0K ./.cache/ibus-table
4.0K . .cache mesa shader cache 08
查找命令
您可以使用 find 命令和 sort 命令列出目录。
find . -type d -ls | sort -n -r
1186380 4 drwxrwxr-x 2 prateek prateek 4096 Feb 25 14:45 ./snap/firefox/2391/.1ocal/share/glib-2.0/schemas
1186378 4 drwxr-xr-x 2 prateek prateek 4096 Feb 28 23:32 ./snap/firefox/common/.cache/mozilla/firefox/e35175b1.default/safebrowsing/google4
1186371 4 drwxrwxr-x 3 prateek prateek 4096 Feb 25 14:45 ./snap/firefox/2391/.1ocal/share/glib-2.0
1186369 4 drwxrwxr-x 2 prateek prateek 4096 Feb 25 14:45 ./snap/firefox/2391/.1ocal/share/icons
1186366 4 drwxrwxr-x 4 prateek prateek 4096 Feb 25 14:45 ./snap/firefox/2391/.1ocal/share
1186359 4 drwx 2 prateek prateek 4096 Dec 26 21:00 ./snap/firefox/2391/.config/pulse
1186357 4 drwxrwxr-x 2 prateek prateek 4096 Feb 28 20:01 ./snap/f irefox 2391 .config ibus
您可以使用以下查找命令排除目录并仅对文件进行排序 -
find . -type f -ls | sort -n -r
使用图形用户界面方法
文件和目录在 Linux 文件管理器中按字母顺序排序。在此文件管理器中,您可以根据自己的喜好进行设置。您可以通过自定义首选项来根据文件的大小设置文件。
为此,请转到文件管理器以及要根据文件大小对文件进行排序的目录和文件夹。之后,单击顶部栏中的向下箭头 (1)。
您可以通过单击上图所示的大小选项 (2) 按减小大小对文件进行排序。
结论
这就是关于在 Linux 中列出每个目录并根据其大小对它们进行排序的简单方法。通过Linux中的ls命令,可以对文件进行排序。使用此命令,我们已经看到使用各种选项根据文件大小对文件进行排序,并以人类可读的格式、特定大小单位、排除隐藏文件等对文件进行排序。 除此之外,您还可以通过 find 和 du 命令对文件进行排序。我们还使用这两个命令根据大小列出了文件。
使用GUI方法对文件进行排序很容易;只需点击几下即可完成。您必须通过文件管理器自定义您的首选项。因此,在本文中,我们了解了如何使用几乎所有可能的方法按文件和目录的大小对文件和目录进行排序。