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 調整權限,或改用有權限的帳號操作。