命令基本資訊
- 路徑:
/bin/ls
- 權限:所有用戶可執行
- 核心功能:列出目錄條目,支援豐富格式化與過濾
參數完整速查表
| 短參數 | 長參數 | 功能描述 |
-a | --all | 顯示所有檔案,含 . 和 .. |
-A | --almost-all | 顯示所有檔案,不含 . 和 .. |
-l | --format=long | 長格式:權限、連結數、擁有者、群組、大小、時間、名稱 |
-h | --human-readable | 大小以 K/M/G 顯示(搭配 -l) |
-d | --directory | 僅列出目錄本身,不遞迴進入 |
-t | --sort=time | 按修改時間排序(新→舊) |
-r | --reverse | 反向排序 |
-S | --sort=size | 按檔案大小排序 |
-i | --inode | 顯示 inode 號 |
-R | --recursive | 遞迴列出子目錄 |
-F | --classify | 檔案類型標識:/目錄 *可執行 @符號連結 =socket |FIFO |
--color=auto | | 按類型著色(預設開啟) |
長格式輸出欄位深度解讀
drwxr-xr-x 2 root root 4096 Jan 15 10:30 Desktop
-rw-r--r-- 1 user users 1234 Jan 14 09:15 test.txt
| 欄位 | 含義 | 範例值 |
| 1 | 檔案類型+權限 | d目錄 -普通檔 l符號連結 b區塊設備 c字符設備 |
| 2 | 硬連結數 | 目錄含 . 和 .. 至少為 2 |
| 3 | 擁有者用戶名 | root |
| 4 | 擁有者群組名 | root |
| 5 | 檔案大小(位元組) | 4096 |
| 6 | 最後修改時間 | Jan 15 10:30 |
| 7 | 檔案名稱 | Desktop |
權限位詳細拆解
drwxr-xr-x
││││││││└─ 其他人:r=讀 x=進入目錄
││││││└──── 其他人:w=寫(目錄意為建立/刪除檔案)
│││││└───── 其他人:x=執行/進入
││││└────── 群組:r
│││└─────── 群組:w
││└──────── 群組:x
│└───────── 擁有者:r
└────────── 擁有者:w
擁有者:x
特殊位(出現在擁有者/群組/其他人 x 位置):
s:Setuid/Setgid(執行時獲得檔主/群組權限)
t:Sticky bit(目錄下僅檔主/root 可刪除檔案,如 /tmp)
S/T:對應位無執行權限時的特殊位顯示
實戰高頻組合
# 日常最常用:長格式、人類可讀、含隱藏檔、不含 . ..
ls -lAh
# 按時間倒序(最新在前),含隱藏檔
ls -ltAh
# 按大小排序,找大檔案
ls -lSh
# 遞迴列出整棵目錄樹
ls -R
# 僅看目錄本身屬性
ls -ld /etc
# 顯示 inode,配合 find -inum 找硬連結
ls -li
# 只列出 .log 檔案
ls *.log
ls -l *.log
# 彩色輸出強制開啟/關閉
ls --color=always
ls --color=never
輸出重導向與管道應用
# 檔案列表存檔
ls -1 > filelist.txt
# 統計檔案數量
ls -1 | wc -l
# 找最大的 5 個檔案
ls -1Sh | head -5
# 只顯示目錄
ls -l | grep '^d'
# 找出權限異常的檔案(全域可寫)
ls -l | grep '^-.*w.$'
別名建議
# ~/.bashrc
alias ll='ls -lAh'
alias la='ls -A'
alias lt='ls -ltAh'
alias lsd='ls -ld */' # 僅列出子目錄