有没有办法可以将此命令的输出(假设只找到一个文件)通过管道传输到 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')