将'find'命令的输出重定向到'vim'

Sac*_*tye 16 vim redirect find

我正在查找$ PWD -name'filename'| vim -

期望在vim编辑器中打开文件文件名.但它不起作用.在这种情况下,我确信只存在一个名为'filename'的文件.

find的结果也给出了stdout的完整路径.

Rom*_*aka 26

vim "$(find "$PWD" -name 'filename')"
Run Code Online (Sandbox Code Playgroud)

要么

find "$PWD" -name 'filename' -exec vim {} \;
Run Code Online (Sandbox Code Playgroud)

("$PWD"顺便说一句,您可以删除.find默认情况下从当前目录开始搜索.)

  • 您可能希望使用`+`来连接结果而不是`;`来结束查找操作单个结果:`find"$ PWD"-name'filename'-exec vim {} +`应该打开文件一个vim实例(所以它们可以从`:args`访问). (8认同)
  • @JonathanHartley:这不起作用,因为你引用了输出.如果你不引用输出(并且文件名中没有空格)它是否有效?无论如何,你最好使用`-exec`(带有`+`). (3认同)
  • "你可以放弃"$ PWD",顺便说一下" - 请注意,如果你需要完整路径(而不是相对路径),添加$ PWD会有所作为.(就像你将结果写入文件一样.) (2认同)

fra*_*ous 8

find . -name 'filename' -print0 | xargs -0 vim

也应该工作.您可能想要阅读xargs,这是一个方便的事情.

  • 这对我不起作用.`找到.-name'utility'-print0 | xargs -0 vim`代替打开一个新文件,其名称是find输出的串联.这是在OSX上. (2认同)