使用 Find 命令的结果来调用 vi

使用 Find 命令的结果来调用 vi

有没有办法可以将此命令的输出(假设只找到一个文件)通过管道传输到 vi。我想找到此命令,然后在 vi 中调用它。

谢谢。

find . -name 'id.properties'

答案1

要编辑文件印制者find

find . -name 'id.properties' -exec vi {} +

简而言之,这将在当前目录 ( .) 和所有以 为基名的子目录中查找路径id.properties。有了这些文件,它运行命令vi file1 file2 [...]( -exec vi {} +)。如果文件非常多(通常为数千个),它甚至可能运行多个vi命令,每个命令包含一堆文件,以便能够将命令放入系统的最大命令长度中。要强制它运行命令每个您可以用来\;代替的文件+

要编辑文本印制者find

find . -name 'id.properties' | vi -

写道将找到的任何文件的路径(相对于当前目录)(因为默认情况下末尾find有一个隐藏)发送到其标准输出,即-print连接的 (|vi的标准输入。vi反过来,从标准输入(-)读取并将其显示为要编辑的文件。

答案2

您可以将输出推送到文本文件中并使用 vi 打开它。

find . -name 'id.properties' >> /home/<user>/find.txt
vi /home/<user>/find.txt

答案3

回答看起来最直接。对于你的情况,应该是:

vim $(find . -name 'id.properties')

相关内容