Linux 列出每个文件和目录的大小并按大小排序

Linux 列出每个文件和目录的大小并按大小排序

列出每个文件和目录的大小非常有用,因为它可以帮助用户根据大小对它们进行排序。根据大小对文件进行排序是释放空间、使它们更有组织等的必要步骤。您可以通过命令行和图形方式来组织Linux文件系统。

它可以帮助您快速定位文件和目录以及它们的内容。因此,在这篇长文中,我们将解释在Linux中轻松列出每个目录并根据大小进行排序的各种方法。

在Linux中列出每个文件和目录的大小并按大小排序

您可以轻松按照大小、名称、修改时间等列出Linux中的文件。在这里,我们需要根据大小对每个文件和目录进行排序。您可以使用命令行和GUI方法按大小对文件和目录进行排序。让我们讨论这两种方法,并看看如何根据大小对文件进行排序。

命令行方法

主要使用ls命令在Linux中对文件进行排序。使用du和find命令,您也可以根据大小对文件进行排序。

ls命令

ls命令是在Linux和Unix系统中列出目录内容的实用工具。如果没有与此命令一起使用操作数或选项,则默认情况下在屏幕上显示当前目录的内容。

如果没有使用–sort、-l等选项与ls命令一起使用,则它默认按字母顺序对条目进行排序。现在,我们将看到如何使用不同的ls命令选项按文件大小在Linux中进行排序。首先,我们将列出目录中的所有文件以及与它们相关的隐藏文件。

:~$ 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命令根据文件和目录的大小排序文件,使用以下命令:

:~$ 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 命令

您可以使用 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命令来排除目录并且仅对文件进行排序:

:~$ find . -type f -ls | sort -n -r

使用图形用户界面(GUI)方法

在Linux文件管理器中,文件和目录按字母顺序进行排序。在这个文件管理器中,你可以根据自己的喜好设置偏好设置。你可以通过自定义偏好设置按文件大小排序。

为此,进入文件管理器并选择你要根据文件大小排序的目录和文件夹。然后,点击顶部工具栏中的向下箭头(1)。

Linux 列出每个文件和目录的大小并按大小排序

你可以通过点击上面图片中显示的大小选项(2)按减少的大小顺序排序文件。

结论

所以这就是关于在Linux中使用简单方法列出每个目录并根据它们的大小进行排序的所有内容。通过Linux中的ls命令,你可以对文件进行排序。使用这个命令,我们已经看到了使用各种选项按文件大小排序文件的方法,以及按照人类可读格式、特定大小单位、排除隐藏文件等方式进行文件排序。除此之外,你还可以通过find和du命令对文件进行排序。我们还使用这两个命令按大小列出了文件。

使用GUI方法对文件进行排序很容易;你可以通过几次点击来完成。你只需要根据自己的喜好自定义偏好设置,进入文件管理器即可。因此,在本文中,我们已经了解了如何使用几乎所有可能的方法按大小排序文件和目录。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程