我通常这样使用
$ find -name testname.c
./dir1/dir2/testname.c
$ vi ./dir1/dir2/testname.c
Run Code Online (Sandbox Code Playgroud)
再次输入位置文件名是很烦人的.
我怎么能只用一步呢?
我试过了
$ find -name testname.c | xargs vi
Run Code Online (Sandbox Code Playgroud)
但我失败了.
Mic*_*ski 10
使用-exec参数来find.
$ find -name testname.c -exec vi {} \;
Run Code Online (Sandbox Code Playgroud)
如果您find返回多个匹配项,则文件将按顺序打开.也就是说,当你关闭一个时,它会打开下一个.你不会让他们全部排队在缓冲区.
要使它们在缓冲区中全部打开,请使用:
$ vi $(find -name testname.c)
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这真的是vi,而不是Vim,现在vi经常被别名?
您可以使用bash中的以下命令执行此操作:
要么使用
vi `find -name testname.c`
Run Code Online (Sandbox Code Playgroud)
或者使用
vi $(!!)
Run Code Online (Sandbox Code Playgroud)
如果你已经输入过 find -name testname.c
编辑:可能重复:bash - 自动捕获上次执行的命令输出到变量中