使用Find命令的结果来调用vi
有没有办法可以将此命令的输出(假设只找到一个文件)传递给vi。 我想找到这个命令,然后在vi中调用它。
谢谢。
find . -name 'id.properties'
要编辑由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
从标准输入( -
)读取并显示为要编辑的文件。
您可以在文本文件中推送输出并使用vi打开它。
find . -name 'id.properties' >> /home//find.txt vi /home/ /find.txt
这个答案似乎最直接。 对于你的情况,它将是:
vim $(find . -name 'id.properties')