Linux ls 列出檔案與目錄
ls (List) 是 Linux 中最基本也最常用的指令,用於列出指定目錄下的檔案與子目錄清單。當你登入一台 Linux 伺服器,通常第一個輸入的指令就是 ls,先看看自己身在何處,周遭有哪些檔案。
基本用法
不帶任何參數時,ls 只會列出當前目錄下的「非隱藏」檔案名稱。
ls
輸出範例:
Desktop Documents Downloads Music Pictures Public Templates Videos
你也可以在 ls 後面接上路徑,查看特定目錄的內容:
# 查看 /var/log 目錄下的內容
ls /var/log
常用參數
只看檔名通常不夠,我們常需要知道檔案的大小、修改時間、權限等資訊。這時就需要搭配參數使用。
-l:顯示詳細資訊 (Long listing format)
這是最常用的參數。它會以列表方式顯示檔案的詳細屬性,包括權限、擁有者、群組、檔案大小、修改時間與檔名。
ls -l
輸出範例:
total 60
drwxr-xr-x 2 user user 4096 Dec 12 10:00 Desktop
drwxr-xr-x 2 user user 4096 Dec 12 10:00 Documents
-rw-r--r-- 1 user user 898 Dec 12 09:30 example.txt
-a:顯示所有檔案 (All),包含隱藏檔
在 Linux 中,檔名以點 . 開頭的檔案被視為隱藏檔(例如 .bashrc, .gitignore)。預設的 ls 不會顯示它們。使用 -a 可以看到這些檔案。
ls -a
-h:以易讀格式顯示檔案大小 (Human readable)
預設的 ls -l 顯示的檔案大小單位是 Bytes,很難直觀判斷。搭配 -h 參數,系統會自動轉換成 KB, MB, GB 等我們習慣的單位。通常會跟 -l 一起用。
ls -lh
輸出範例:
-rw-r--r-- 1 user user 1.2K Dec 12 10:15 file1.txt
-rw-r--r-- 1 user user 5.0M Dec 12 10:20 bigfile.iso
-R:遞迴列出子目錄內容 (Recursive)
如果你想一次看完目錄下所有層級的檔案(包含子目錄裡的檔案),可以使用 -R。但這可能會產生非常大量的輸出,請謹慎使用。
ls -R
-t:依修改時間排序 (Sort by time)
預設 ls 是依照檔名排序。使用 -t 會依照「修改時間」排序,最新的檔案會排在最前面。這在尋找最近被更動過的檔案時非常有用。
# 顯示詳細資訊,並依照時間排序(最新的在上面)
ls -lt
-r:反向排序 (Reverse)
將排序結果反轉。例如搭配 -t 使用變成 -ltr,就會變成「依照時間排序,最舊的在上面,最新的在下面」。這在檔案列表很長時很有用,因為最新的檔案會剛好顯示在終端機的最下方(游標處)。
# 最通用的組合技之一:詳細資料、易讀大小、依時間反向排序
ls -lhtr
常用組合技
實際工作中,我們通常會組合多個參數來達到最佳效果。
1. 顯示詳細資訊,包含隱藏檔,並轉換容量單位
ls -lah
這Probably 是工程師最常打的指令之一(有時候會設定 alias 為 ll)。
2. 顯示特定附檔名的檔案
配合 萬用字元 (Wildcard) * 使用。
# 只列出所有的 .txt 文字檔
ls *.txt
# 列出 /etc 目錄下所有以 .conf 結尾的設定檔
ls /etc/*.conf