我正在尝试在 Mac 上创建一个可执行脚本,它会搜索一个文件并将其设置为当前目录 ( cd
),然后运行更多命令。我开始于
find . -type d -name "MCsniperPY-master" -exec cd {}
它说我需要一个 + 或一个 ;
- 我添加了一个
+
,cmd什么也没做, - 我添加一个
;
,它说我需要一个+
或;
我对 Unix 编码很陌生,所以如果有更好的方法可以做到这一点,请告诉我。
答案1
使用cd
作为 find 的参数-exec
将导致find
命令内的目录发生更改,当find
命令退出时,您仍位于起始目录中。
我会用
cd "$(find . -type d -name "MCsniperPY-master" -print | head -1)"
在哪里
find . -type d -name "MCsniperPY-master" -print
搜索所有名为“MCsniperPY-master”的目录并打印head -1
将保留第一个(如果您确定只有一个,则可以省略)cd "$( ... )"
将进入该目录(或者如果没有找到任何内容,cd
则带您返回目录)$HOME
您可能希望$CDPATH
在使用时使用该列表来搜索一组目录cd