一、通過文件名排序
sort命令默認以行為單位對文本進行排序,可以對文件名進行排序,通過ls命令進行文件的獲取,ls命令後面跟-l選項可以以列表方式顯示目標文件的詳細信息,其中包括文件類型、許可權、時間和文件名等信息。
$ ls -l total 0 -rw-r--r-- 1 root root 0 Apr 10 17:10 file1 -rw-r--r-- 1 root root 0 Apr 10 17:10 file2 -rw-r--r-- 1 root root 0 Apr 10 17:10 file3
默認情況下,ls命令是按文件名排序的。sort命令對文件名進行排序,可以使用類似下面的命令:
$ ls -l | sort total 0 -rw-r--r-- 1 root root 0 Apr 10 17:10 file1 -rw-r--r-- 1 root root 0 Apr 10 17:10 file2 -rw-r--r-- 1 root root 0 Apr 10 17:10 file3
sort命令默認將文本按照ASCII字符集的順序排序,如果需要按照自然數順序排序,可以加上-n選項。
$ ls -l | sort -n total 0 -rw-r--r-- 1 root root 0 Apr 10 17:10 file1 -rw-r--r-- 1 root root 0 Apr 10 17:10 file2 -rw-r--r-- 1 root root 0 Apr 10 17:10 file3
如果需要以相反的順序進行排序,可以使用-r選項。
$ ls -l | sort -n -r total 0 -rw-r--r-- 1 root root 0 Apr 10 17:10 file3 -rw-r--r-- 1 root root 0 Apr 10 17:10 file2 -rw-r--r-- 1 root root 0 Apr 10 17:10 file1
二、通過文件大小排序
sort命令可以用於按照文件大小對文件進行排序。如果需要以位元組大小進行排序,可以使用ls命令的-l選項,再通過sort命令進行排序。
$ ls -l | sort -k 5 -n total 0 -rw-r--r-- 1 root root 0 Apr 10 17:10 file1 -rw-r--r-- 1 root root 0 Apr 10 17:10 file2 -rw-r--r-- 1 root root 0 Apr 10 17:10 file3
在-k選項中指定了要按照第5列(即文件大小)進行排序。
如果需要將文件大小轉化為人類可讀的格式(如KB、MB等),可以使用ls命令的-h選項,並結合sort命令的-k選項進行排序。
$ ls -lh | sort -k 5 -h total 0 -rw-r--r-- 1 root root 0 Apr 10 17:10 file1 -rw-r--r-- 1 root root 0 Apr 10 17:10 file2 -rw-r--r-- 1 root root 0 Apr 10 17:10 file3
三、使用文件元數據排序
除了按照文件名和文件大小進行排序外,還可以按照文件的其他元數據信息進行排序,例如文件的許可權、修改時間、文件類型等。
例如,以修改時間排序:
$ ls -l | sort -k 6M total 0 -rw-r--r-- 1 root root 0 Apr 10 17:10 file1 -rw-r--r-- 1 root root 0 Apr 10 17:10 file2 -rw-r--r-- 1 root root 0 Apr 10 17:10 file3
在-k選項中指定了以月份(第6列)為關鍵字進行排序。
使用不同的選項,可以實現不同的排序方式。
四、結語
sort命令是Linux系統中非常常用的命令之一,它可以用於對文本和文件進行排序。在Linux系統中,文件的排序是常見的操作之一,熟練掌握sort命令的用法,可以更高效地進行文件管理。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/249072.html