shell命令:pushd、popd、dirs命令


pushd和popd命令是操作目錄棧,dirs命令是查看目錄棧。

dirs命令:查看現在目錄棧元素

root@VM-0-2-ubuntu:/home# dirs
/home /
root@VM-0-2-ubuntu:/home# dirs -v # 按索引列出
 0 /home
 1 /

目錄棧的概念:

存放一個或多個目錄,棧中至少要有一個元素。
棧頂元素永遠是當前目錄:使用cd命令切換目錄會改變目錄棧的棧頂元素,用pushd或popd改變棧頂元素會切換目錄。

root@VM-0-2-ubuntu:~# dirs
~
root@VM-0-2-ubuntu:~# cd /
root@VM-0-2-ubuntu:/# dirs
/

popd命令:將棧頂元素刪除

同時會改變當前目錄(因為改變了棧頂元素),且會列出改變后的目錄棧內容。

root@VM-0-2-ubuntu:/etc# popd
/home /
root@VM-0-2-ubuntu:/home# popd
/
root@VM-0-2-ubuntu:/# popd
-su: popd: directory stack empty

加參數的:

# 注意下面的N是數字,n是字母n參數

popd +N  # 刪除棧中(從左邊數)第N個元素,由0開始計。
popd -N  # 刪除棧中(從右邊數)第N個元素,由0開始計。
pop -n # 不改變當前目錄(也就是不改變棧頂元素,操作除了棧頂外棧內其他元素)

# usage: pushd [-n] [+N | -N | dir] 
pushd  # 不加參數時,交換棧頂前兩個元素
pushd +N  # 將棧內元素循環左移,直到將(從左邊數)第N個元素移動到棧頂,由0開始計。
pushd -N  # 將棧內元素循環左移,直到將(從右邊數)第N個元素移動到棧頂,由0開始計。
pushd -n dir # 將目錄入棧,但不改變當前元素,即將目錄插入棧中作為第二個元素。 注意-n參數要在目錄之前。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM