一步到位,linux下查找并跳轉(zhuǎn)文件夾

關(guān)鍵:把find的結(jié)果(目標(biāo)文件夾或目錄)作為參數(shù)交給cd

1

問(wèn)題和需求:

假設(shè)只記得在某個(gè)路徑里有一個(gè)名稱中包含了"WPS"3個(gè)字母的文件夾,但是具體路徑想不起來(lái)了?,F(xiàn)在需要找到它,并立即跳轉(zhuǎn)到這個(gè)文件夾里面去。
常規(guī)的做法分兩步:
「1」find [搜尋目錄] -name "WPS" -type d
「2」cd (第「1」步得到的文件夾路徑)
現(xiàn)在覺得這樣比較麻煩,就想通過(guò)一步到位的辦法,直接就查找、跳轉(zhuǎn)到目標(biāo)文件夾里去。

關(guān)鍵:

關(guān)鍵其實(shí)就在于要把find命令得到的文件夾路徑作為參數(shù)提供給cd命令執(zhí)行。
嘗試過(guò)經(jīng)常被提到的使用xargs參數(shù)的方法,但是失敗了!

(find / -name "*WPS*" -type d | xargs cd)
# 失敗了

解決:

使用「1」一對(duì)反引號(hào)(``)或者「2」美元符號(hào)加一對(duì)小括號(hào)$()可以解決這個(gè)問(wèn)題。
具體為:

cd `find / -name "*WPS*" -type d `
# 或者
cd $(find / -name "*WPS*" -type d )

第「2」種更容易看一點(diǎn),畢竟反引號(hào)(``)和單引號(hào)一眼看過(guò)去不是那么容易區(qū)分。

驗(yàn)證:

簡(jiǎn)便起見,就以查找并跳轉(zhuǎn)進(jìn)入當(dāng)前目錄下的某個(gè)子目錄為例來(lái)演示。


2

在當(dāng)前目錄下,想查找并跳轉(zhuǎn)到名稱中包含了"WPS"3個(gè)字母的文件夾中去,同時(shí),在當(dāng)前目錄下「有且只有」一個(gè)這樣的文件夾。
「有」這樣的文件夾,那么find的結(jié)果就不是空,否則cd就跳轉(zhuǎn)到用戶目錄下去了。
「只有」一個(gè)這樣的文件夾,那么find的結(jié)果是唯一的,最后跳轉(zhuǎn)的目標(biāo)才是確定的。

3

查找、跳轉(zhuǎn),一步到位!

另外,順便提一下一個(gè)小竅門:比如千辛萬(wàn)苦進(jìn)入了一個(gè)很多層的目錄下了,一不小心輸入了cd一下子回到了用戶目錄下,怎么找回去呢?其實(shí)很簡(jiǎn)單,cd后面跟一個(gè)短橫就可以了:

cd -
4

該命令等同于

cd $OLDPWD

關(guān)于這一點(diǎn)在bash的手冊(cè)頁(yè)(可使用命令man bash訪問(wèn)其手冊(cè)頁(yè))中有介紹,

An argument of - is equivalent to $OLDPWD.

并且它還會(huì)返回上一次目錄的物理路徑,并顯示在shell中。

結(jié)束語(yǔ):

其實(shí)上面這樣的cd和find的組合,還是有很大的局限性的,只能說(shuō)在某些時(shí)候可以用用吧。
在github上有一個(gè)項(xiàng)目,名字叫「autojump」,star數(shù)高達(dá)8.7K,也是很受歡迎了!它的介紹是「A cd command that learns - easily navigate directories from the command line 」,在終端里使用單字母「j」作為命令,后面可以直接附帶要跳轉(zhuǎn)的文件夾的名稱或部分名稱,也可以附帶參數(shù)+要跳轉(zhuǎn)的文件夾的名稱或部分名稱,就會(huì)跳過(guò)去了。這個(gè)使用起來(lái)就比上面的cd和find的簡(jiǎn)單組合的容錯(cuò)性、可用性大多了。


5

(筆記留存)


硯湖@飄香生活館
二〇一九年一月十一日

?著作權(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)容

  • 49.剛才出去打水,抬頭竟然能看到低低的云彩飄著,不知道有沒有月亮,樓層擋住了,我沒有看到。 50.小廚房新客戶好...
    利萍閱讀 197評(píng)論 0 0
  • 接上篇 小學(xué)時(shí)欺負(fù)女生的男生們,長(zhǎng)大后和被你欺負(fù)的那位在一起了么?(一) 小學(xué)畢業(yè)后,N男和大部分畢業(yè)生一樣順利進(jìn)...
    小丹丹呀蛋閱讀 2,780評(píng)論 1 6
  • 家有貓一只,慘遭不幸而去。念其伴我母親在家半年有余,以作此短文祭之。 母親獨(dú)在家中生活,然夜間偶有鼠擾。擔(dān)憂母親夜...
    鄧文偉閱讀 836評(píng)論 0 0
  • 自李俊彥同學(xué)17年09月05日加入永澄文化傳播公司實(shí)習(xí)以來(lái),持續(xù)的低效工作引起了永澄老師和梓暢大法師的關(guān)注。為了避...
    Lo俊彥閱讀 470評(píng)論 2 2

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