如何在终端中“ cd”到“ find”命令的输出

时间:2019-08-22 19:50:01

标签: terminal

我想把cd转到find命令的输出中:

find ~ -name work_project_linux
cd the_output

1 个答案:

答案 0 :(得分:3)

通常,对find的结果执行任意命令的最佳方法是使用find -exec。大括号{}是找到的文件名的占位符,整个命令以+\;结尾。例如,它将在找到的所有文件上运行ls -l

find ~ -name work_project_linux -exec ls -l {} +

但是,它不适用于某些特殊命令,例如cd-exec运行二进制文件,例如在/usr/bin中找到的二进制文件,而cd不是二进制文件。它是Shell内置的,这是一种特殊类型的命令,它可以直接执行而不是调用磁盘上的某些可执行文件。对于shell内置程序,可以使用command substitution

cd "$(find ~ -name work_project_linux)"

如果find找到多个文件,这将不起作用。仅适用于单个文件名。命令替换也将无法正确处理某些不寻常的文件名,例如带有嵌入式换行符的文件名-异常,但合法。