这个命令和输出:
% find . -name file.xml 2> /dev/null
./a/d/file.xml
%
所以这个命令和输出:
% dirname `find . -name file.xml 2> /dev/null`
./a/d
%
所以你会期望这个命令:
% cd `dirname `find . -name file.xml 2> /dev/null``
会将当前目录更改为./a/d。奇怪的是,这不起作用。当我键入 cd ./a/d
时。目录更改有效。但是我不知道为什么上面的方法不起作用......
最佳答案
刚刚注意到反引号...改用这个:
cd $(dirname $(find . -name file.xml 2> /dev/null))
编辑:引用参数(如果它们包含空格):
cd "$(dirname "$(find . -name file.xml 2> /dev/null)")"
关于Bash:使用命令作为参数(特别是 cd、dirname 和 find),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2449595/