衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux中如何讓切換目錄更方便?

Linux愛好者 ? 來源:博客園 ? 作者:學(xué)無止境 ? 2020-12-24 11:38 ? 次閱讀

【導(dǎo)讀】在 Linux 下切換目錄,你還是只會(huì) cd 這個(gè)命令嗎? 快來學(xué)習(xí)下 pushd popd 命令吧,讓你切換目錄更加的方便。

在命令行模式下,當(dāng)你工作在不同目錄中,你將發(fā)現(xiàn)你有很多時(shí)間都浪費(fèi)在重復(fù)輸入上如果這些目錄不在同一個(gè)根目錄中,你不得不在轉(zhuǎn)換時(shí)輸入完整的路徑名,這難免讓人有些難以忍受但你可以用以下的一個(gè)或兩個(gè)步驟來避免所有多余的輸入:用命令行解釋器中的歷史記錄,或者用命令行函數(shù)pushd。

用命令行解釋器中的歷史記錄的好處是只需按很少的鍵在命令行中用向上的箭頭來查找你用過的命令,直到你找到,然后按回車鍵如果你所切換的兩個(gè)目錄在整個(gè)驅(qū)動(dòng)器的子目錄結(jié)構(gòu)中很接近,那用解釋器中的歷史記錄可能是你最好的選擇。

然而,如果你在兩個(gè)截然不同的路徑間轉(zhuǎn)換的話,你可能很希望利用pushd這個(gè)函數(shù),你可以用它創(chuàng)建一個(gè)目錄堆棧(在內(nèi)存中的一個(gè)列表)。

注釋:缺省情況下,pushd函數(shù)可能不包括在你的Linux中;但它包涵在Red Hat和用Red Hat驅(qū)動(dòng)的系統(tǒng)中如果你的系統(tǒng)中沒有pushd函數(shù),你可以在ibiblio.org網(wǎng)站上下載相關(guān)的函數(shù)工具。

這里說一下怎么用pushd假設(shè)你現(xiàn)在工作在/usr/share/fonts/目錄下你需要對(duì)/usr/share/fonts/做一些改動(dòng),你將頻繁的在兩個(gè)目錄間切換開始在一個(gè)目錄下,用pushd函數(shù)切換到另一個(gè)目錄在我們的例子中,開始在/usr/share/fonts/下,你鍵入pushd /home/yxy/,然后按回車鍵現(xiàn)在,你將在下一行看到堆棧中的內(nèi)容:/home/yxy /usr/share/fonts。

正如你所看到的,當(dāng)你鍵入pushd和一個(gè)路徑名時(shí),將自動(dòng)產(chǎn)生一個(gè)堆棧,內(nèi)容是你鍵入的目錄名和你當(dāng)前工作的目錄名在我們的例子中,你所鍵入的路徑(/opt/wonderword/fonts)在堆棧的頂部。

快速返回上一級(jí)目錄,你可以直接鍵入pushd,如果不跟路徑名,你將返回到堆棧中前一個(gè)目錄的上一層目錄。

如果你需要從堆棧中刪除一個(gè)目錄,鍵入popd,然后是目錄名稱,再按回車鍵想查看堆棧中目錄列表,鍵入dirs,然后按回車鍵popd和dirs命令也是常用函數(shù)中的一部分。

一,為何要使用這幾個(gè)命令?

可能大家會(huì)有疑問,為何要使用這幾個(gè)命令,難道用cd不就可以切換目錄了嗎?

沒錯(cuò),使用cd就可以切換到需要訪問的目錄,但是有時(shí)會(huì)是一個(gè)路徑很長,層次很多的目錄,進(jìn)到此目錄下后,這時(shí)我們不小心運(yùn)行了 cd命令,理所當(dāng)然,我們回到了自己的home目錄,這時(shí)如果想回去怎么辦?

還有:因?yàn)楣ぷ鞯男枰覀冃枰煌T趲讉€(gè)很深層的目錄之間切換,不止一個(gè),那么即使有tab鍵幫忙,我們也會(huì)因?yàn)橐粋€(gè)cd命令花費(fèi)很多時(shí)間,如何在多個(gè)目錄之間切換時(shí)能更方便些呢?

pushd、popd是我們的好幫手

說明: pushd、popd、dirs 這幾個(gè)我們講到的命令是bash內(nèi)建的命令,所以只要登錄到了bash,這幾個(gè)命令就可以使用了。

二,如何在兩個(gè)目錄之間切換?

如果只是在兩個(gè)目錄之間切換,那么還不必使用pushd,這時(shí)只需使用 cd -就可以了。

cd - 的作用是可以回到前一個(gè)目錄。

看例子:

[root@localhost~]# cd/usr/share/kde4/apps/kget/pics/[root@localhostpics]# cd-/root[root@localhost~]#cd -/usr/share/kde4/apps/kget/pics[root@localhost pics]#

怎么樣?在兩個(gè)目錄之間切換非常方便,無需再輸入很長的路徑。

說明:

為何cd -能夠回到前一個(gè)目錄?

這是因?yàn)?- 在此處等同于 $OLDPWD變量,此問題可以參見bash的info信息

cd 一項(xiàng)有相關(guān)的說明: An argument of - is equivalent to $OLDPWD。

$OLDPWD變量就是bash所記錄的前一個(gè)目錄,也就是說:$OLDPWD 和 - 相等。

下面我們?cè)倏匆粋€(gè)例子:

[root@localhost~]#cd /usr/share/kde4/apps/kget/pics/[root@localhostpics]# echo$OLDPWD;/root[root@localhostpics]# cd$OLDPWD[root@localhost ~]# echo $OLDPWD;/usr/share/kde4/apps/kget/pics[root@localhost~]#cd $OLDPWD;[root@localhost pics]# echo $OLDPWD;/root

我們可以得到結(jié)構(gòu): 用cd -和cd $OLDPWD都可以在最近所操作的兩個(gè)目錄之間進(jìn)行切換。

三,如何在多個(gè)目錄之間切換?

因?yàn)?cd -和 cd $OLDPWD都是只支持最近操作的兩個(gè)目錄,所以要在多個(gè)目錄之間操作時(shí),我們需要使用 pushd。

1、先來介紹我們會(huì)用到的3條命令

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

popd:彈出堆棧中最近的目錄。

dirs: 列出當(dāng)前堆棧中保存的目錄列表。

看例子:

[root@localhost~]# pushd/usr/local/sbin//usr/local/sbin ~[root@localhostsbin]# dirs/usr/local/sbin ~[root@localhostsbin]# dirs-p-v0 /usr/local/sbin1 ~[root@localhostsbin]# pushd/usr/share/kde4/apps/kget//usr/share/kde4/apps/kget /usr/local/sbin ~[root@localhostkget]# dirs-p-v0 /usr/share/kde4/apps/kget1 /usr/local/sbin2 ~

說明: dirs的 -p參數(shù)可以每行一個(gè)目錄的形式顯示堆棧中的目錄列表;

-v 參數(shù)可以在目錄前加上編號(hào);

注意:有 -v時(shí),不添加 -p也可以每行一個(gè)目錄的形式顯示。

說明之二:我們可以看到:最近壓入堆棧的目錄位于最上面。

2,如何在最近的兩個(gè)目錄之間切換?

在最近的兩個(gè)目錄之間切換:用pushd不加參數(shù)即可

[root@localhostkget]# pushd/boot/grub//boot/grub /usr/share/kde4/apps/kget /usr/local/sbin ~[root@localhost grub]# dirs -v0 /boot/grub1 /usr/share/kde4/apps/kget2 /usr/local/sbin3 ~[root@localhostgrub]# pushd/usr/share/kde4/apps/kget /boot/grub /usr/local/sbin ~[root@localhostkget]# dirs-v0 /usr/share/kde4/apps/kget1 /boot/grub2 /usr/local/sbin3 ~[root@localhostkget]# pushd/boot/grub /usr/share/kde4/apps/kget /usr/local/sbin ~[root@localhostgrub]# dirs-v0 /boot/grub1 /usr/share/kde4/apps/kget2 /usr/local/sbin3~

說明:可以看到,用pushd不加參數(shù)在最近的兩個(gè)目錄之間切換時(shí),當(dāng)前目錄總是位于堆棧的最上面。

3,如何在多個(gè)目錄之間切換?

用 pushd +n 即可

說明:n 是一個(gè)數(shù)字,有此參數(shù)時(shí),是切換到堆棧中的第n個(gè)目錄,并把此目錄以堆棧循環(huán)的方式推到堆棧的頂部。

需要注意:堆棧從第0個(gè)開始數(shù)起。

看例子:

[root@localhost grub]# dirs -v0 /boot/grub1 /usr/share/kde4/apps/kget2 /usr/local/sbin3 ~[root@localhostgrub]# pushd+2/usr/local/sbin ~ /boot/grub /usr/share/kde4/apps/kget[root@localhostsbin]# dirs-v0 /usr/local/sbin1 ~2 /boot/grub3 /usr/share/kde4/apps/kget

4,如何把目錄從堆棧中刪除?

用popd即可。

看例子:

root@localhost sbin]# dirs -v0 /usr/local/sbin1 ~2 /boot/grub3 /usr/share/kde4/apps/kget[root@localhost sbin]# popd~ /boot/grub /usr/share/kde4/apps/kget[root@localhost~]# dirs-v0 ~1 /boot/grub2 /usr/share/kde4/apps/kget[root@localhost~]# popd+1 ~ /usr/share/kde4/apps/kget[root@localhost~]# dirs-v0 ~1 /usr/share/kde4/apps/kget

說明:可以看到popd不加參數(shù)的運(yùn)行情況:

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

說明之二: popd 加有參數(shù) +n時(shí),n 是堆棧中的第n個(gè)目錄,表示把堆棧中第n個(gè)目錄從堆棧中刪除。

四,多學(xué)一點(diǎn)知識(shí)

1,pushd和popd都可以只影響堆棧而不切換目錄

用 -n 參數(shù)即可。

看例子:

[root@localhost~]# dirs-v0 ~1 /usr/share/kde4/apps/kget[root@localhost~]# pushd-n/boot/grub~ /boot/grub /usr/share/kde4/apps/kget[root@localhost~]# dirs-v0 ~1 /boot/grub2 /usr/share/kde4/apps/kget

2, dirs可以清空目錄堆棧

用 -c參數(shù)即可

看例子:

[root@localhost~]# dirs-v0 ~1 /boot/grub2 /usr/share/kde4/apps/kget[root@localhost~]# dirs-c[root@localhost~]# dirs-v0 ~

說明: 位于堆棧頂部的目錄是當(dāng)前目錄,它不能被pop出去的。

- EOF -

推薦閱讀點(diǎn)擊標(biāo)題可跳轉(zhuǎn)

1、怎樣用 Bash 編程:語法和工具

2、Shell 信號(hào)發(fā)送與捕捉

3、Shell 監(jiān)控文件變化

看完本文有收獲?請(qǐng)分享給更多人

推薦關(guān)注「Linux 愛好者」,提升Linux技能

原文標(biāo)題:pushd、popd、dirs、cd :讓切換目錄更方便

文章出處:【微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11345

    瀏覽量

    210409
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62978

原文標(biāo)題:pushd、popd、dirs、cd :讓切換目錄更方便

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux的用戶與創(chuàng)建

    Linux的用戶與創(chuàng)建 用戶的類型 超級(jí)管理用戶: 權(quán)限最高的用戶(uid:0) #uid:是用戶的身份證號(hào),Linux系統(tǒng)只認(rèn)uid 普通用戶: 權(quán)限受限的用戶(uid:1000-60000
    的頭像 發(fā)表于 12-20 14:24 ?321次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b>的用戶與創(chuàng)建

    AIGC系統(tǒng)多個(gè)模型的切換調(diào)用方案探索

    作者:京東科技 賈玉龍 1 背景 1.1 現(xiàn)狀 AIGC系統(tǒng)多個(gè)模型的切換調(diào)用通常指的是在同一個(gè)AIGC系統(tǒng)或應(yīng)用,可以根據(jù)不同的輸入條件或任務(wù)需求,動(dòng)態(tài)地選擇并調(diào)用不同的機(jī)器學(xué)習(xí)模型進(jìn)行處理
    的頭像 發(fā)表于 11-27 11:43 ?224次閱讀
    AIGC系統(tǒng)<b class='flag-5'>中</b>多個(gè)模型的<b class='flag-5'>切換</b>調(diào)用方案探索

    Linux lsof命令的基本用法

    linux 系統(tǒng),一切皆文件。通過文件不僅僅可以訪問常規(guī)數(shù)據(jù),還可以訪問網(wǎng)絡(luò)連接和硬件。所以 lsof 命令不僅可以查看進(jìn)程打開的文件、目錄,還可以查看進(jìn)程監(jiān)聽的端口等 socket 相關(guān)的信息。本文將介紹 lsof 命令
    的頭像 發(fā)表于 10-23 11:52 ?429次閱讀
    <b class='flag-5'>Linux</b> lsof命令的基本用法

    暢享無線投屏新體驗(yàn),USB連接設(shè)備兼容

    新增了按鍵旋轉(zhuǎn)功能,使得用戶可以方便地調(diào)整屏幕方向。無論是在橫屏還是豎屏模式下,您都可以通過簡單的按鍵操作迅速切換,適應(yīng)不同的展示需求。這一功能特別適合需要展示豎屏內(nèi)容的場合,比如閱讀文檔或展示社交媒體
    發(fā)表于 10-12 10:49

    Linux開發(fā)怎么學(xué)?

    令是使用 Linux 的基礎(chǔ),包括文件操作、目錄管理、用戶管理、進(jìn)程管理、網(wǎng)絡(luò)管理等方面。可以通過閱讀相關(guān)的書籍、在線教程等方式學(xué)習(xí)。以下是常用的命令實(shí)例。 # 列出當(dāng)前目錄下的文件和子目錄
    發(fā)表于 10-10 14:34

    Linux根文件系統(tǒng)的掛載過程

    Linux根文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)文件系統(tǒng)。
    的頭像 發(fā)表于 10-05 16:50 ?517次閱讀

    常見的shell命令之目錄相關(guān)命令

    目錄內(nèi)容參數(shù):ls[選項(xiàng)]目錄目錄缺省時(shí),默認(rèn)為當(dāng)前目錄;選項(xiàng)如下,選項(xiàng)可以組合使用。示例:3、cd切換
    發(fā)表于 08-19 10:06

    常見的shell命令之目錄相關(guān)命令

    功能:列出目錄內(nèi)容參數(shù):ls[選項(xiàng)]目錄 目錄缺省時(shí),默認(rèn)為當(dāng)前目錄;選項(xiàng)如下,選項(xiàng)可以組合使用。示例:3、cd切換
    發(fā)表于 08-16 09:22

    詳解Linux的權(quán)限控制

    本章將和大家分享Linux的權(quán)限控制。廢話不多說,下面我們直接進(jìn)入主題。
    的頭像 發(fā)表于 08-05 15:32 ?669次閱讀
    詳解<b class='flag-5'>Linux</b><b class='flag-5'>中</b>的權(quán)限控制

    電源切換芯片怎么設(shè)置

    電源切換芯片是一種用于實(shí)現(xiàn)電源切換功能的電子元件,廣泛應(yīng)用于各種電子設(shè)備,如計(jì)算機(jī)、手機(jī)、電源適配器等。本文將介紹電源切換芯片的設(shè)置方法,包括工作原理、分類、選擇、設(shè)計(jì)、測試和應(yīng)用等
    的頭像 發(fā)表于 07-15 10:57 ?1415次閱讀

    全志D1s軟件入門之Tina Linux編譯教程

    完成,可以在/out/d1s-nezha/tina_d1s-nezha_uart0.img 目錄下找到打包完成的固件。 進(jìn)階編譯操作 Tina Linux 提供了大量方便使用的快捷跳轉(zhuǎn)命令。
    發(fā)表于 06-05 09:50

    手機(jī)信號(hào)放大器:提升手機(jī)信號(hào),通訊暢快?

    手機(jī)信號(hào)放大器:提升手機(jī)信號(hào),通訊暢快?|深圳特信電子
    的頭像 發(fā)表于 03-19 09:04 ?1984次閱讀

    智慧路燈桿AI監(jiān)測應(yīng)用,高速出行安全

    針對(duì)更好監(jiān)測和管理高速公路上的交通狀況,可以基于智慧路燈桿打造AI交通監(jiān)測應(yīng)用,通過智能感知高速路段的路況、車況、環(huán)境狀況,實(shí)現(xiàn)實(shí)時(shí)風(fēng)險(xiǎn)感知、風(fēng)險(xiǎn)預(yù)警和協(xié)同處置,高速出行安全。
    的頭像 發(fā)表于 03-11 17:20 ?483次閱讀
    智慧路燈桿AI監(jiān)測應(yīng)用,<b class='flag-5'>讓</b>高速出行<b class='flag-5'>更</b>安全

    ADS應(yīng)用技巧—如何修改ADS的home目錄

    這里說的home目錄就是啟動(dòng)ADS后,默認(rèn)打開的路徑,通常是你存放ADS工程所在的目錄
    的頭像 發(fā)表于 02-26 09:43 ?2437次閱讀
    ADS應(yīng)用技巧—如何修改ADS的home<b class='flag-5'>目錄</b>?

    如何CYUSB在linux上閃存固件?

    不起作用。 我能知道其他支持在 linux 刷新固件的應(yīng)用程序嗎,或者如何 CYUSB 在 linux 上閃存固件。 發(fā)行商 ID:Ubuntu 描述:Ubuntu 22.04
    發(fā)表于 02-22 06:23
    杨氏百家乐官网必胜公式| 缅甸百家乐官网的玩法技巧和规则| 希尔顿百家乐官网娱乐城| 百家乐庄家优势| 大发888网页多少| 百家乐官网隐者博客| 试玩百家乐官网代理| 百家乐技术辅助软件| 凌龙棋牌游戏大厅| 娱乐城百家乐官网可以代理吗 | 百家乐官网庄闲出现几| 赌片百家乐的玩法技巧和规则| 温州牌九| 成人百家乐官网的玩法技巧和规则 | 澳门百家乐网络游戏信誉怎么样| 吉安县| 百家乐官网手机壳| 大发888娱乐厂场| 百家乐官网麻关于博彩投注| 百家乐游戏真人游戏| 德州扑克 术语| 百家乐官网分路单| 威尼斯人娱乐城网站| 丹阳棋牌游戏中心| 百家乐官网开线| 吉利百家乐的玩法技巧和规则| 日土县| 百家乐游戏奥秘| 六合彩挂牌| 百家乐官网建材| 百家乐那里信誉好| 百家乐官网二代皇冠博彩| 如何看百家乐的路纸| 明陞M88娱乐城| 金宝博百家乐现金| 六合彩网址大全| 喜来登百家乐官网的玩法技巧和规则 | 百家乐视频多开| 香港六合彩网| 扑克王百家乐官网的玩法技巧和规则 | 德州扑克攻略|