Скажите, что у меня есть файл в некотором неясном каталоге, который я хочу открыть и отредактировать. Я не хочу делать что-то вроде этого...
vim ~/foo/bar/blah/doh/ugh.txt
Я смог бы сказать, находят этот файл и открывают его. Я знаю, что существуют команды как locate
и find
для нахождения файла или каталога но я не уверен, могут ли они (или даже должен), будьте использованы в том, что я пытаюсь сделать. В основном, что самый простой путь состоит в том, чтобы открыть файл с программой w/o определение ее точного местоположения? (В случаях, где нет другого файла с тем же именем во всей системе и случаев, где существуют несколько).
Это откроет все файлы (потенциально многие) с тем именем, которые были добавлены к базе данных в прошлый раз updatedb
был выполнен (обычно ежедневно). Это означает, что файлы, созданные с этого времени, не будут найдены.
vim $(locate ugh.txt)
Если Вы не предоставляете начальный каталог к find
, использование его может быть очень медленным. Это может все еще быть слишком медленно даже с начальным каталогом, если существует много файлов ниже его. То же предупреждение относительно больших количеств файлов применяется.
vim $(find /pathto/startdir -name 'ugh.txt' -type f)
Любой из них мог быть превращен в функцию для сокращения ввода:
viml () { vim $(locate "$@"); }
Затем используйте его как это:
viml ugh.txt
Я думаю, что Вам нужно это: Эта полезная команда позволяет Вам открыть только файлы, которые соответствуют определенному условию - в каталоге и всем, что это - подкаталоги.
vi `grep -rl 'example.js' *
или Вы видите исходную ссылку
если Вы находитесь на zsh затем его просто
vim **/foo.txt
или можно просто ввести энергию и сделать следующий из энергии:
:e **/foo.txt<ENTER>