[英]Is there a way to find a specific file and then change into the directory containing it in one go?
我正在尋找一種方法來找到我所知道的唯一文件,然后切換到包含該文件的目錄。 有點像:
find . -name 'Subscription.java' | xargs cd
要么:
find . -name 'Subscription.java' -exec cd {} \;
我知道這是行不通的,因為它都試圖cd
提供整個絕對路徑,其中包含的文件,也因為xargs
不能做任何的shell命令建立,但你得到的是什么我要完成的地步。
cd $(find . -name Subscription.java | xargs dirname)
Linux / OSX(另類答案):
cd `find . -name Subscription.java | xargs dirname`
任何嘗試編寫cd
命令的腳本都必須確保該命令在當前shell中運行。 否則,如果在子shell中運行,它將無法正常工作,因為不會更改父當前工作目錄。
GNU find有-printf,可用於打印任何找到的文件的目錄。 find的輸出可以通過Command Substitution傳遞給cd
。
cd $(find . -name Subscription.java -printf '%h\n')
cd(在bash中)忽略額外的參數,因此如果找到多個文件,cd將變為第一個找到的文件的目錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.