ls — 列出目錄內容

列出目錄內容,顯示檔案與子目錄清單。

語法

ls [選項] [檔案或目錄...]

常用選項

選項 說明 範例
-a, --all 顯示所有檔案,包含以 . 開頭的隱藏檔 ls -a
-l 以長格式顯示,含權限、硬連結數、擁有者、大小、修改時間 ls -l
-h, --human-readable 搭配 -l,以人類可讀格式顯示大小(K/M/G) ls -lh
-t 依修改時間排序,最新的排前面 ls -lt
-r, --reverse 反轉排序順序 ls -lr
-R, --recursive 遞迴列出所有子目錄內容 ls -R
-d, --directory 只列出目錄本身,不列出其內容 ls -d */
-S 依檔案大小排序,大的排前面 ls -lS
--color[=WHEN] 依類型以顏色標示(auto/always/never) ls --color=auto
-1 每行只顯示一個項目 ls -1
-i, --inode 顯示每個檔案的 inode 編號 ls -i

使用範例

範例 1:列出當前目錄內容

最基本的用法,列出當前目錄下所有非隱藏的檔案與目錄。

$ ls
Desktop  Documents  Downloads  Music  Pictures  Videos
範例 2:顯示詳細資訊(長格式)

使用 -l 顯示完整資訊,包含檔案權限、擁有者、大小與修改時間。

$ ls -l
總計 32
drwxr-xr-x 2 user user 4096  5月 20 09:15 Desktop
drwxr-xr-x 5 user user 4096  5月 18 14:30 Documents
-rw-r--r-- 1 user user 8192  5月 20 10:00 report.txt
範例 3:顯示隱藏檔(含 .開頭)

使用 -a 可顯示所有檔案,包含 . 和 .. 以及 .bashrc 等隱藏設定檔。

$ ls -la
總計 76
drwxr-xr-x 15 user user 4096  5月 20 10:13 .
drwxr-xr-x  3 root root 4096  3月  5 08:00 ..
-rw-r--r--  1 user user  220  3月  5 08:00 .bash_logout
-rw-r--r--  1 user user 3526  3月  5 08:00 .bashrc
範例 4:以人類可讀格式顯示大小

加上 -h 後,檔案大小會以 K、M、G 為單位顯示,更容易閱讀。

$ ls -lh /var/log/
-rw-r--r-- 1 root    root    2.3M  5月 20 06:25 syslog
-rw-r--r-- 1 root    root    180K  5月 20 00:00 auth.log
-rw-r-----  1 root adm   45K  5月 20 06:00 kern.log
範例 5:依時間排序(最新的在前)

使用 -t 可依修改時間排序,搭配 -l 更容易找到最近修改的檔案。

$ ls -lt /var/log/
total 1028
-rw-r--r-- 1 root root 2342568 May 20 10:12 syslog
-rw-r--r-- 1 root root  184320 May 20 00:00 auth.log
範例 6:只列出目錄

使用 -d 搭配 glob 樣式,只顯示目錄項目而不展開其內容。

$ ls -ld */
drwxr-xr-x 2 user user 4096 May 20 09:15 Desktop/
drwxr-xr-x 5 user user 4096 May 18 14:30 Documents/
範例 7:遞迴列出子目錄

使用 -R 可遞迴展開所有子目錄的內容(大型目錄請改用 find 或 tree)。

$ ls -R ~/Documents/
/home/user/Documents/:
project1  project2

/home/user/Documents/project1:
README.md  src

/home/user/Documents/project1/src:
main.py

常見錯誤與排錯

ls: cannot access 'filename': No such file or directory
原因
指定的檔案或目錄不存在,或路徑輸入錯誤。
解法
確認路徑是否正確。可用 pwd 確認當前位置,再用 Tab 鍵自動補齊路徑。
ls: cannot open directory '.': Permission denied
原因
目前使用者對目標目錄沒有讀取(r)權限。
解法
使用 chmod 或 sudo 調整權限,或改用有權限的帳號操作。

延伸閱讀