Bash:使用命令作为参数(特别是 cd、dirname 和 find)

标签 bash unix parameters find cd

这个命令和输出:

% 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/

相关文章:

perl - 不能使用未定义的值作为符号 perl

mysql - 并非所有参数都在 SQL 语句中使用

linux - Bash - grep 问题

unix - 使箭头键和删除键在 KornShell 命令行中工作

shell - 如何获取 UNIX 服务器中已用存储的百分比

linux - 动态链接与静态链接与 PIC 与非 PIC

C++ 语法 : Constant Reference Parameter

linux - shell 脚本 : How to cut part of a string

linux - 如何通过命令行在多个网络连接之间进行选择?

linux - bash + 如何从线路中捕获IP地址