Как открыть найденный файл с vi? Трубопровод «найти» выход в vi [duplicate]

KeePass2

Хотя KeePassX очень прост в установке и управлении, я лично предпочитаю KeePass2. Хотя немного сложнее настроить и иметь тенденцию действовать на Unity, он предлагает гораздо лучшую интеграцию с браузером IMHO.

С помощью KeePass вам никогда не придется снова вводить пароль на любом веб-сайте. Вам даже не придется разбивать пальцы каким-то странным сочетанием клавиш. KeePass распознает веб-сайт, на котором вы находитесь, и полностью автоматизирует ваши данные для входа в систему, оставляя вас одним щелчком мыши по «логину». Это очень удобно и удобно.

Можно найти учебник по установке и настройке его для работы с Chrome / Chromium KeePass2 .

1
задан 16 February 2015 в 21:45

5 ответов

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

find /home/user -type f -name 'important' -exec vi {} \;
8
ответ дан 23 May 2018 в 23:13
  • 1
    Можете ли вы объяснить последние символы, {} \;, что они означают? – micgeronimo 16 February 2015 в 14:03
  • 2
    @micgeronimo Это часть синтаксиса exec. {} будет заменено именем имени файла, а \; используется, чтобы указать, что конец команды для exec. – muru 16 February 2015 в 16:43
  • 3
    Хороший совет. Но есть еще один вопрос: я обнаружил, что 100 файлов и vim открывают их один за другим после закрытия текущего файла. Как отменить целую команду и выйти в оболочку вместо ввода: q на каждый файл или убить терминал. благодаря – alexche8 15 February 2018 в 19:31

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

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

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

Если вам не нужен канал, вы можете попробовать следующее:

find ./ -name 'important.txt' -exec vi {} \;
5
ответ дан 23 May 2018 в 23:13

locate прост так:

locate -0 important.txt | xargs -0 vi

1
ответ дан 23 May 2018 в 23:13

Вы можете использовать первый выбор:

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

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

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

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

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

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

1
ответ дан 23 May 2018 в 23:13

Если вы хотите получить вывод команды find (то есть список файлов) в vim, то следующее будет читать vim из вывода find:

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

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

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

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

Различие между «\;» и "+" в конце команды выглядит следующим образом:

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

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

1
ответ дан 23 May 2018 в 23:13

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

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