Shell文件操作: pushd,popd,dirs

腳本Demo:Github地址

一、兩個(gè)目錄之間切換:cd -
cd - 的作用是可以回到前一個(gè)目錄,

目錄切換

"-"等同于 $OLDPWD變量。$OLDPWD變量就是bash所記錄的前一個(gè)目錄,用cd -或cd $OLDPWD都可以在最近所操作的兩個(gè)目錄之間進(jìn)行切。

二、多個(gè)目錄之間切換 pushd popd dirs

pushd:切換到作為參數(shù)的目錄,并把原目錄和當(dāng)前目錄壓入到一個(gè)虛擬的堆棧中;如果不指定參數(shù),則會(huì)回到前一個(gè)目錄,并把堆棧中最近的兩個(gè)目錄作交換
popd: 彈出堆棧中最近的目錄
dirs: 列出當(dāng)前堆棧中保存的目錄列表

dirs說明:
1、 -p參數(shù)可以每行一個(gè)目錄的形式顯示堆棧中的目錄列表;-v參數(shù)可以在目錄前加上編號(hào)
2、 有 -v時(shí),不添加 -p也可以每行一個(gè)目錄的形式顯示
3、 最近壓入堆棧的目錄位于最上面

操作命令

例:

# 跳轉(zhuǎn)到腳本所在目錄  
pushd `dirname $0` > /dev/null
#另一種寫法:cd $(dirname "$0");``等同于$()

working_path=`pwd`
popd > /dev/null

cd ${working_path}

dirname命令可以取給定路徑的目錄部分。這個(gè)命令一般把它用在shell腳本中,用于取得腳本文件所在目錄,然后將當(dāng)前目錄切換過去。Linux下還有一個(gè)命令是basename,它與dirname相反,是取得文件名稱部分。

"> /dev/null" : 首先表示標(biāo)準(zhǔn)輸出重定向到空設(shè)備文件,也就是不輸出任何信息到終端,說白了就是不顯示任何信息。

> :代表重定向到哪里,例如:echo "123" > /home/123.txt表示將輸出的123重定向到文件123.txt中

popd把堆棧頂端的目錄從堆棧中刪除,并切換于位于新的頂端的目錄

pushd和popd都可以只影響堆棧而不切換目錄.使用-n參數(shù)

dirs用 -c參數(shù)清空目錄堆棧

執(zhí)行:

" . "指向當(dāng)前目錄,如果你的腳本處于當(dāng)前目錄下,你可以用下面命令執(zhí)行:
./yourscript.sh

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語(yǔ)言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 100,675評(píng)論 9 468
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,562評(píng)論 19 139
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,242評(píng)論 2 33
  • 本文筆記源自這里——[實(shí)驗(yàn)樓]歡迎大家在下面交流其中有問題的地方喜歡請(qǐng)點(diǎn)收藏,每日更新(全部已親自實(shí)踐). 一. ...
    東皇Amrzs閱讀 4,320評(píng)論 7 54
  • 先介紹下,Holy同學(xué),典型的現(xiàn)實(shí)主義者,但是你又沒有辦法因?yàn)樗默F(xiàn)實(shí)而去否認(rèn)她說的一切,,應(yīng)了那句話—讓人又愛又...
    香蕉蘋果閱讀 247評(píng)論 0 0

友情鏈接更多精彩內(nèi)容