dirs 是 Bash 內建指令,用於顯示目錄堆疊(Directory Stack)內容。它始終將目前工作目錄作為堆疊底部(索引 0),其後依序列出 pushd 加入的目錄。掌握 dirs 搭配 pushd/popd,能在多專案、多層級目錄間實現鍵盤級的極速跳轉,告別冗長的 cd ../../../path。
dirs [+/-n] [-clpv]
| 參數 | 功能說明 |
|---|---|
-c | 清空目錄堆疊所有記錄 |
-l | 以完整絕對路徑顯示(不縮寫 ~) |
-p | 每行顯示一個目錄 |
-v | 每行顯示一個目錄並附加索引編號(0 為目前目錄) |
| 顯示從左至右第 N 個目錄(0 起算) | |
| 顯示從右至左第 N 個目錄(0 起算) |
$ dirs -v
0 /home/user/projectA
1 /var/log/nginx
2 /etc/nginx/conf.d
3 /home/user/scripts
# 切換到索引 2 的目錄(/etc/nginx/conf.d)
cd "$(dirs -l +2)"
# 或搭配 pushd 直接旋轉堆疊
pushd +2
dirs -c
在 ~/.bashrc 定義快捷函數:
# 將常用路徑推入堆疊並記憶
mark() { pushd "$1" >/dev/null; dirs -v; }
# 列出書籤
marks() { dirs -v; }
# 跳轉至書籤編號
jump() { cd "$(dirs -l +$1)"; }
使用方式:
mark /etc/nginx/conf.d
mark /var/log/nginx
marks
# 輸出:
# 0 /home/user
# 1 /etc/nginx/conf.d
# 2 /var/log/nginx
jump 1 # 直接進入 /etc/nginx/conf.d
dirs:唯讀檢視,不改變堆疊與目前目錄pushd dir:將 dir 壓入堆疊頂端並 cd 過去popd:彈出堆疊頂端目錄並 cd 回新頂端善用目錄堆疊,能將終端機操作效率提升 30% 以上,是 Linux 進階使用者的必備肌肉記憶。