打开文件而不指定具体位置

打开文件而不指定具体位置

假设我在某个不起眼的目录中有一个文件,我想打开并编辑它。我不想做这样的事情...

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

我认为您需要这个:这个有用的命令允许您只打开符合特定条件的文件 - 在目录及其所有子目录中。

vi `grep -rl 'example.js' *

或者你可以看到原始引用

答案3

如果你在 zsh 上那么它只是

vim **/foo.txt

或者你可以直接输入 vim 并执行以下操作之内vim:

:e **/foo.txt<ENTER>

相关内容