Linux 命令查找目录并转到该目录

Linux 命令查找目录并转到该目录

我想找到保存某个文件的目录并在那里进行 cd。例如

find * -name hello.txt 

输出:Documents/Projects/hello.txt

cd Documents/Projects

我如何管道化这些命令?谢谢!

答案1

尝试

cd $(dirname$(find /path -name hello.txt | head -n 1))

或者

cd $(find /path -name hello.txt | head -n 1 | xargs dirname)

您需要提供一个path搜索,*因为上面的内容将不起作用,因为 shell 会扩展它。

编辑,如果你的文件名中有空格

cd $(find /home -name 'he llo.txt' -print0 -quit | xargs -0 dirname)

如果你的目录名中也有空格

 cd "$(find /path -name 'hello.txt' -print0 -quit | xargs -0 dirname)"

答案2

不需要查找所有文件head -1,只需使用选项在找到第一个文件后-quit使命令停止:findhello.txt

$ cd $(dirname $(find /path -name hello.txt -print -quit))

相关内容