假设我在某个不起眼的目录中有一个文件,我想打开并编辑它。我不想做这样的事情...
vim ~/foo/bar/blah/doh/ugh.txt
我更愿意能够说找到这个文件并打开它。我知道有像locate
和这样的命令find
可以查找文件或目录,但我不确定这些命令是否可以(甚至应该)用于我试图做的事情。基本上,使用程序打开文件而不指定其确切位置的最简单方法是什么?(在整个系统中没有其他同名文件的情况下,以及有多个文件的情况下)。
答案1
这将打开全部updatedb
上次运行时(通常每天)添加到数据库中的同名文件(可能很多) 。这意味着自那时以来创建的文件将不会被找到。
vim $(locate ugh.txt)
除非您为 提供起始目录find
,否则使用它可能会非常慢。如果起始目录下有大量文件,即使有起始目录,它仍然可能太慢。对于大量文件,同样的警告也适用。
vim $(find /pathto/startdir -name 'ugh.txt' -type f)
可以将其中任何一个转换为函数以减少输入:
viml () { vim $(locate "$@"); }
然后像这样使用它:
viml ugh.txt
答案2
答案3
如果你在 zsh 上那么它只是
vim **/foo.txt
或者你可以直接输入 vim 并执行以下操作之内vim:
:e **/foo.txt<ENTER>