我非常频繁地使用该locate
命令。
因此如果我运行以下命令。
locate updatedb | head -1
然后它给了我O/p
/usr/updatedb.conf
我想知道是否有这样的命令可以让我直接打开该文件?
我希望发生这样的事情。
locate updatedb | head -1 | vim
答案1
您快完成了:
$ locate updatedb | head -1 | xargs vim
有时(在某些终端下)您需要在编辑后重置终端。
$ reset
答案2
作为交互式编辑器,Vim 需要 stdin 和 stdout,因此在管道中使用它会有问题,并且会导致 Vim 对此发出警告。对于单个文件,进程替换可以轻松解决这个问题:
vim "$(locate updatedb | head -1)"
您还可以使用反引号,这甚至可以在 Vim 内部使用:
:edit `locate updatedb | head -1`
答案3
此外上述答案,为了避免 Jacobo de Vera 在评论中提到的“终端损坏”,请使用 xargs 选项-o
或--open-tty
让 vim 假定输入来自终端,而不是 stdin。
$ locate updatedb | head -1 | xargs -o vim