在Linux中,我們常常需要查看文件或目錄的詳細信息,包括文件大小、修改時間、許可權等等。而ls命令是常用的列出目錄內容的命令之一,既可以簡單的列表顯示,也可以詳細的列出文件信息,其中最常用的就是ls -l命令。
一、ls -l命令簡介
ls -l命令可以列出目錄中的所有文件及其詳細信息,包括文件類型、許可權、擁有者、所屬組、文件大小、修改時間等。其基本格式如下:
$ ls -l [路徑/文件名]
其中,路徑/文件名表示要查看的目錄或文件的名稱和路徑。
例如,我們使用ls -l命令查看當前目錄下所有文件的詳細信息:
$ ls -l
輸出如下:
總用量 24
-rw-r--r-- 1 root root 1250 1月 14 09:52 index.html
drwxr-xr-x 5 root root 4096 1月 14 09:52 images
drwxr-xr-x 2 root root 4096 1月 14 09:52 css
drwxr-xr-x 2 root root 4096 1月 14 09:52 js
可以看到,該命令輸出了當前目錄的總用量、文件或者目錄的詳細信息,其中,第一列代表文件類型和許可權,第二列顯示文件的硬鏈接數,第三列表示該文件或目錄的擁有者,第四列表示該文件或目錄所屬的組,第五列表示該文件或目錄的大小,第六列表示修改時間,最後一列顯示文件或目錄的名稱。
二、ls -l命令參數詳解
ls -l命令參數可以幫助我們進一步定製輸出內容,便於對文件進行分類篩選。
1. -a 參數
-a 參數可以列出所有文件,包括隱藏文件。
$ ls -la
輸出如下:
總用量 24
drwxr-xr-x 3 root root 4096 1月 14 09:53 .
drwx------ 5 root root 4096 1月 14 09:50 ..
-rw-r--r-- 1 root root 1250 1月 14 09:52 index.html
drwxr-xr-x 5 root root 4096 1月 14 09:52 images
drwxr-xr-x 2 root root 4096 1月 14 09:52 css
drwxr-xr-x 2 root root 4096 1月 14 09:52 js
可以看到,其中包括了當前目錄的上級目錄(denoted by “..”)和本身(denoted by “.”),以及隱藏的.git目錄。
2. -h 參數
-h 參數可以將文件的大小以易讀的方式輸出,比如將位元組轉為KB、MB等。
$ ls -lh
輸出如下:
總用量 24K
-rw-r--r-- 1 root root 1.3K 1月 14 09:52 index.html
drwxr-xr-x 5 root root 4.0K 1月 14 09:52 images
drwxr-xr-x 2 root root 4.0K 1月 14 09:52 css
drwxr-xr-x 2 root root 4.0K 1月 14 09:52 js
可以看到,文件大小以KB為單位顯示。
3. -t 參數
-t 參數可以按照時間排序,最近修改過的文件會排在前面。
$ ls -lt
輸出如下:
總用量 24
drwxr-xr-x 5 root root 4096 1月 14 09:52 images
-rw-r--r-- 1 root root 1250 1月 14 09:52 index.html
drwxr-xr-x 2 root root 4096 1月 14 09:52 css
drwxr-xr-x 2 root root 4096 1月 14 09:52 js
可以看到,按照時間排序後,最近被修改的images目錄排在了最前面。
三、ls -l命令示例
下面,我們來演示一些實際應用場景:
1. 列出指定目錄下最近被修改的5個文件
$ ls -lt | grep ^- | head -5
這個命令中,ls -lt會按照時間排序,grep ^-可以過濾掉目錄,只列出文件,head -5表示只顯示前5個文件。輸出如下:
-rw-r--r-- 1 root root 1.2K 1月 14 09:52 index.html
-rw-r--r-- 1 root root 538 1月 14 09:52 about.html
-rw-r--r-- 1 root root 217 1月 14 09:52 contact.html
-rw-r--r-- 1 root root 191 1月 14 09:52 services.html
-rw-r--r-- 1 root root 92 1月 14 09:52 index.md
2. 列出指定目錄下大於1MB的文件
$ ls -lh | awk '$5 > 1M {print $0}'
在這個命令中,ls -lh會列出文件的詳細信息,並將文件大小轉為MB為單位。awk ‘$5 > 1M {print $0}’則是用來過濾掉文件大小不足1MB的文件,只顯示大於1MB的文件。輸出如下:
-rw-r--r-- 1 root root 1.2M 1月 14 09:52 index.html
3. 列出指定目錄下每個文件或目錄所佔用的空間大小
$ du -sh *
在這個命令中,du命令可以計算文件或目錄所佔用的空間大小,-s參數表示只顯示每個文件或目錄的總用量,-h參數表示以易讀的方式輸出文件大小。*表示列出當前目錄下所有文件和目錄的總用量。輸出如下:
1.2M index.html
4.0K images
4.0K css
4.0K js
總結
ls -l命令是Linux命令行中非常實用的命令之一。通過對參數的配置,可以讓我們更方便地定製需要查看的文件或目錄的詳細信息,快速定位和管理文件。同時,結合其他命令,ls -l還可以實現更加複雜和實用的功能,這對於Linux系統的管理員來說至關重要。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/199526.html