Как открыть найденный файл с помощью vi? дубликат]

На этот вопрос уже есть ответ здесь:

У меня есть файл, /home/user/important.txt . Чтобы найти его, я использую:

find /home/user -type f -name 'important'

Затем я хочу открыть файл в редакторе Vim с помощью конвейера.

Как я могу это сделать?

Что-то вроде

find /home/user -type f -name 'important' | vi
9
задан 16 February 2015 в 10:45

6 ответов

Добавьте * подстановочный знак после 'важный', также можно использовать следующую команду:

vim $(find /home/user -name "important*")
8
ответ дан 23 November 2019 в 04:46

Можно использовать -exec наряду с find. Используйте следующую команду:

find /home/user -type f -name 'important' -exec vi {} \;
10
ответ дан 23 November 2019 в 04:46

Использование:

find ./ -name 'important.txt' -print0 | xargs -0 vi

Это работает, и это просто.

, Если Вам не нужен канал тогда, можно попробовать это:

find ./ -name 'important.txt' -exec vi {} \;
7
ответ дан 23 November 2019 в 04:46

locate просто как так:

locate -0 important.txt | xargs -0 vi

1
ответ дан 23 November 2019 в 04:46

Вы могли использовать предпочтительный вариант:

find ./ -name 'important' -print0 | xargs -0 vi


или как второй выбор:

find /home/user -type f -name 'important' -exec vi {} \;


отметьте, эти xargs, команда может правильно обработать пробелы в именах файлов, найденных эти find команда без Вас имеющий необходимость к волнению по поводу неожиданных результатов.
и избегают замены команды как следующее:

vim $(find /home/user -name "important*")

Это вызвано тем, что в большинстве случаев, Вы просто не знаете, сколько результатов (файлы) Вы ожидаете или имеют ли те имена файлов пробелы в них для предотвращения нежелательных результатов из-за пробелов.

1
ответ дан 23 November 2019 в 04:46

Если Вы хотите получить вывод команды находки (т.е. список файлов) в энергии, то следующему считают энергию из вывода находки:

find /home/user -type f -name 'important' | vi -
<час>

, Если Вы хотите открыть сами файлы, тогда xargs и находка - исполнительное действие является хорошими вариантами, как упомянуто другими ответами.

Однако для - исполнительное действие Вы - очень более обеспеченное использование следующего синтаксиса:

find /home/user -type f -name 'important' -exec vi {} +

различие между "\"; и "+" в конце команды следующие:

С "\"; экземпляр энергии будет открыт для каждого файла, который найден. Это означает, что, если 20 файлов найдены, необходимо будет закрыть энергию 20 раз для возвращения к оболочке, и Вы не можете переместиться между файлами в энергии.

С "+", единственный экземпляр энергии будет открыт со всеми найденными файлами. Это означает, что можно двинуться вперед-назад между файлами как буферы и когда Вы сделаны, существует только один экземпляр энергии, которая будет закрыта.

1
ответ дан 23 November 2019 в 04:46

Другие вопросы по тегам:

Похожие вопросы: