[英]How to find -exec cd in linux / unix
我正在搜索一個配置文件夾,並嘗試更改為該目錄:
find . -name "config" -exec cd {} \;
有一個匹配./my-applications/config
,但在我嘗試后它說:
find: `cd': No such file or directory
我究竟做錯了什么?
命令cd
是內置的 shell ,在/bin
或/usr/bin
中找不到。
當然,您不能將目錄更改為文件,並且您的搜索不限於目錄。 而且cd
命令只會影響執行的命令,不會影響執行find
命令的父 shell。
利用:
cd $(find . -name config -type d | sed 1q)
請注意,如果找不到您的目錄,則命令完成后您將返回主目錄。 ( sed 1q
確保您只將一個目錄名稱傳遞給cd
;Korn shell cd
在命令中采用兩個值並執行一些相當明智的操作,但 Z7024FF0860DEC6AB1779A3F71C7 忽略了額外的內容。)
如果您有多個配置目錄:
select config in $(find . -name config -type d)
do
cd $config
break
done
find
將-exec
程序作為子進程運行,子進程不能影響其父進程。 所以,是做不到的。 你可能想試試
cd `find . -name "config"`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.