如何在 Linux 中使用 ls 命令按大小對所有文件進行排序

ls command 是用於列出目錄內容的最流行且非常有用的命令。 在這篇文章中,我們將解釋如何使用 ls sort 選項以按大小列出目錄內容。

1)按大小列出目錄中的文件(排序)

要使用大小排序列出特定目錄的內容,我們將使用 -lS 選項與 ls 命令。 它將在頂部顯示最大尺寸的文件。

$ ls -lS /run

output
total 24
-rw-rw-r--. 1 root utmp 2304 Sep 8 14:58 utmp
drwxr-xr-x. 16 root root 400 Aug 21 13:18 systemd
drwxr-xr-x. 7 root root 160 Aug 26 14:59 udev
drwxr-xr-x. 4 root root 100 Aug 21 13:18 initramfs
drwxr-xr-x. 4 root root 100 Sep 8 03:31 lock
drwxr-xr-x. 3 root root 100 Aug 21 13:18 NetworkManager
drwxr-xr-x. 2 root root 60 Aug 21 13:18 dbus
drwxr-xr-x. 3 root root 60 Aug 21 13:18 log
drwxr-xr-x. 2 root root 40 Aug 21 13:18 console
drwxr-xr-x. 2 root root 40 Aug 21 13:18 faillock
drwxr-x---. 2 root root 40 Aug 21 13:18 firewalld

To list with file size but it wont be sorted, we will use -s option with ls command.

$ ls -s

2)列出文件大小(反向排序)

要列出具有大小反向排序的特定目錄的內容(即最小大小的文件在頂部),我們將使用 -lSr 選項與 ls 命令。

$ ls -lSr /run

output
total 24
-rw-------. 1 root root 0 Aug 21 13:18 xtables.lock
-rw-------. 1 root root 3 Aug 21 13:18 syslogd.pid
-rw-r--r--. 1 root root 4 Aug 21 13:18 sshd.pid
-rw-r--r--. 1 root root 4 Aug 21 13:18 auditd.pid
drwxr-xr-x. 2 root root 40 Aug 21 13:18 setrans

3) 以人類可讀的格式(例如,1K 48M 1G)對輸出和打印尺寸進行排序

要以人類可讀的格式對輸出和打印尺寸進行排序,我們將使用 -h 選項與 ls 命令。

$ ls -lSh

output
total 1.3M
-rw-r--r--. 1 root root 1.1M Aug 26 15:45 GeoIP-1.5.0-11.el7.x86_64.rpm
-rw-r--r--. 1 root root 177K Aug 26 15:29 index.html
drwxr-xr-x. 2 root root 4.0K Sep 8 13:32 apache2
drwxr-xr-x. 2 root root 4.0K Sep 8 13:31 Desktop
drwxr-xr-x. 2 root root 4.0K Sep 8 13:32 Documents
drwxr-xr-x. 2 root root 4.0K Sep 8 13:32 Downloads
drwxr-xr-x. 2 root root 4.0K Sep 8 13:32 Pictures
.......

此外,我們可以為特定的擴展以人類可讀的格式打印尺寸。

ls -l -S -h *.mp3

ls -l -S -h ~/Downloads/*.mp4 | more

幾個基本技巧

4) 按字母排序的列表

要按字母順序列出特定目錄的內容,我們將使用 ls command only 沒有選項,因為字母排序是默認的。

$ ls

output
anaconda-ks.cfg Desktop echo.txt index.html Pictures smart.txt
apache2 Documents f.txt nano.txt printf.txt vim.txt cat.txt
Downloads GeoIP-1.5.0-11.el7.x86_64.rpm original-ks.cfg smart.docx vi.txt

要列出帶有詳細信息的特定目錄的內容,請添加目錄的路徑。

$ ls -l /run

output
total 24
-rw-r--r--. 1 root root 4 Aug 21 13:18 auditd.pid
drwxr-xr-x. 2 root root 40 Aug 21 13:18 console
-rw-r--r--. 1 root root 4 Aug 21 13:18 crond.pid
----------. 1 root root 0 Aug 21 13:18 cron.reboot
drwxr-xr-x. 2 root root 60 Aug 21 13:18 dbus
-rw-r--r--. 1 root root 4 Sep 9 08:17 dhclient-eth0.pid
-rw-------. 1 root root 0 Aug 21 13:18 ebtables.lock
drwxr-xr-x. 2 root root 40 Aug 21 13:18 faillock
drwxr-x---. 2 root root 40 Aug 21 13:18 firewalld
..........

5) 按字母順序反向排序的列表

要列出特定目錄的內容以及按字母順序反向排序的詳細信息,我們將使用 -lr 選項與 ls 命令。

$ ls -lr /run

output
total 24
-rw-------. 1 root root 0 Aug 21 13:18 xtables.lock
-rw-rw-r--. 1 root utmp 2304 Sep 8 14:58 utmp
drwxr-xr-x. 3 root root 60 Sep 7 23:11 user
drwxr-xr-x. 7 root root 160 Aug 26 14:59 udev
drwxr-xr-x. 2 root root 60 Aug 21 13:18 tuned
drwxr-xr-x. 2 root root 60 Aug 21 13:18 tmpfiles.d
drwxr-xr-x. 16 root root 400 Aug 21 13:18 systemd
-rw-------. 1 root root 3 Aug 21 13:18 syslogd.pid
drwx--x--x. 3 root root 60 Aug 21 13:18 sudo
-rw-r--r--. 1 root root 4 Aug 21 13:18 sshd.pid
drwxr-xr-x. 2 root root 40 Aug 21 13:18 setrans
drwxr-xr-x. 2 root root 40 Aug 21 13:18 sepermit
drwxr-xr-x. 2 root root 40 Aug 21 13:18 plymouth
.......

6) 按字母排序列出目錄的隱藏內容

要列出特定目錄的隱藏內容,我們將使用 -a 或者 --all 選項與 ls 命令。

$ ls -a /etc

output
. default gss logrotate.d pm rsyslog.conf sysctl.d
.. depmod.d host.conf machine-id polkit-1 rsyslog.d systemd
adjtime dhcp hostname magic popt.d rwtab system-release
aliases DIR_COLORS hosts makedumpfile.conf.sample postfix rwtab.d system-release-cpe
........

7) 按字母順序列出文件

要列出指定目錄的詳細信息,例如文件權限、鏈接數、所有者名稱和組所有者、文件大小、上次修改時間和文件/目錄名稱,我們將使用 -l 選項與 ls 命令。

$ ls -l /run

output
total 24
-rw-r--r--. 1 root root 4 Aug 21 13:18 auditd.pid
drwxr-xr-x. 2 root root 40 Aug 21 13:18 console
-rw-r--r--. 1 root root 4 Aug 21 13:18 crond.pid
----------. 1 root root 0 Aug 21 13:18 cron.reboot
drwxr-xr-x. 2 root root 60 Aug 21 13:18 dbus
-rw-r--r--. 1 root root 4 Sep 8 12:41 dhclient-eth0.pid
-rw-------. 1 root root 0 Aug 21 13:18 ebtables.lock
drwxr-xr-x. 2 root root 40 Aug 21 13:18 faillock
drwxr-x---. 2 root root 40 Aug 21 13:18 firewalld
drwxr-xr-x. 4 root root 100 Aug 21 13:18 initramfs
drwxr-xr-x. 4 root root 100 Sep 8 03:31 lock
drwxr-xr-x. 3 root root 60 Aug 21 13:18 log
........

您還可以使用 dir 命令列出文件, dir -S 將按大小排序。 感謝您閱讀我的文章,請留下您的評論。

另請閱讀:

  • 15 個用於處理終端會話的 Linux 屏幕命令
  • 探索 Linux 中用於顯示目錄條目的 20 個“LS”命令