cd(Change Directory)是 Linux 系統最基礎、使用頻率最高的命令。所有文件操作、腳本執行、路徑引用均建立在當前工作目錄之上,熟練掌握 cd 技巧能顯著提升終端操作效率。
cd [目錄路徑]
~)~ - ..)| 命令 | 作用 | 示例場景 |
|---|---|---|
cd / | 進入系統根目錄 | 查看頂層目錄結構 ls / |
cd / cd ~ | 回當前用戶家目錄 | 快速返回 /home/user 或 /root |
cd - | 切換到上一個工作目錄 | 兩個項目目錄來回切換 |
cd .. | 進入父目錄 | 從 /var/www/html 到 /var/www |
cd ../.. | 進入祖父目錄(上兩級) | 快速跳出深層嵌套 |
cd 目錄名 | 進入當前目錄下的子目錄 | cd logs 進入 pwd/logs |
cd /完整/路徑 | 絕對路徑跳轉 | 跨分區、跨掛載點跳轉 |
cd !$ | 復用上一條命令的最後一個參數 | mkdir -p a/b/c && cd !$ 直接進入新建目錄 |
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd /
[root@localhost /]# pwd
/
[root@localhost /]# cd
[root@localhost ~]# pwd
/root
/:系統根目錄,掛載點起點~:當前用戶家目錄(root 為 /root,普通用戶為 /home/username)[root@localhost soft]# pwd
/opt/soft
[root@localhost soft]# cd ..
[root@localhost opt]# pwd
/opt
[root@localhost opt]# cd ../..
[root@localhost /]# pwd
/
.. 代表父目錄,可鏈式使用 ../../.. 向上多級。
[root@localhost ~]# cd /opt/soft
[root@localhost soft]# pwd
/opt/soft
[root@localhost soft]# cd jdk1.6.0_16/
[root@localhost jdk1.6.0_16]# pwd
/opt/soft/jdk1.6.0_16
/ 開頭,從根開始[root@localhost soft]# pwd
/opt/soft
[root@localhost soft]# cd -
/root
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd -
/opt/soft
[root@localhost soft]#
Shell 內部維護 OLDPWD 變量記錄上一目錄,cd - 相當於 cd "$OLDPWD",雙目錄來回極其高效。
[root@localhost soft]# cd !$
cd -
/root
[root@localhost ~]# cd !$
cd -
/opt/soft
!$ 為 Bash 歷史擴展,代表「上一條命令的最後一個參數」。配合 mkdir -p a/b/c && cd !$ 一鍵建目錄並進入。
輸入 cd /ho 按 Tab 自動補全為 cd /home/,再按一次列出候選。肌肉記憶必練。
pushd /var/log # 進入並記錄棧
pushd /etc # 再進一層
dirs -v # 顯示棧
popd # 彈出回上層
多目錄並行作業時比 cd - 更強。
j 目錄名片段 智能跳轉(學習訪問頻度)cd $(find . -type d | fzf) 模糊搜索跳轉# ~/.bashrc
export WWW="/var/www/html"
export LOGS="/var/log/nginx"
# 使用:cd $WWW
| 錯誤現象 | 原因 | 正確做法 |
|---|---|---|
cd: no such file or directory | 路徑拼寫錯/不存在/權限不足 | Tab 補全、ls 確認、sudo 或修權限 |
cd: not a directory | 目標是文件而非目錄 | 用 cd $(dirname 文件路徑) |
| 腳本中 cd 不生效 | 子 Shell 執行,退出後不影響父 Shell | source script.sh 或 . script.sh 在當前 Shell 運行 |
| 中文目錄亂碼 | 終端編碼不匹配 | 設置 LANG=zh_CN.UTF-8、終端編碼 UTF-8 |
cd 雖簡單,但掌握 ~ - .. !$ pushd/popd 及現代跳轉工具,能讓終端操作行雲流水。建議:
cd -../../.. 或安裝 zoxidesource 執行