Удалите все файлы отмены Vim во всех, кроме одного каталога

Я просто понял, что у меня есть тонны файлов Vim undo ( .un~ ), которые посыпают мою файловую систему. Я хотел бы удалить все эти файлы, кроме одного каталога – ~/.tmp . Моя первая проблема заключается в том, что я не могу найти команду Unix для удаления этих вещей. Например, у меня есть имя файла, которое выглядит так:

.myfile.txt.un~

Я пробовал, rm -f *.un , rm -f *.un\~ , rm -f *.un* и т. Д., И я не могу найти команду, которая может удалить эти файлы. Как удалить эти файлы?

Во-вторых, я хотел бы написать команду с помощью find, которая может посещать все мои каталоги и удалять эти файлы, за исключением каталога ~/.tmp . Я очень боюсь выполнить эту команду, если она ошибается. Может ли кто-нибудь помочь создать команду find для этого? Заранее спасибо за помощь!

2 Solutions collect form web for “Удалите все файлы отмены Vim во всех, кроме одного каталога”

Эти команды не работали, потому что шаблоны подстановочных знаков пропускают файлы точек (файлы, имя которых начинается с символа . ), Если точка не отображается явно в шаблоне. Итак *.un~ соответствует yourfile.txt.un~ но не .myfile.txt.un~ , тогда как .*.un~ соответствует .myfile.txt.un~ .

Вы должны иметь возможность использовать find(1) для этого ( find подстановочные знаки не обрабатывает файлы точек специально):

 find / -name "*.un~" -not -path "~/.tmp/*" -delete 

Это говорит find для поиска / для всех файлов, соответствующих *.un~ , которые не находятся в ~/.tmp и удаляют их. Если вы удалите -delete он просто выведет список, чтобы вы могли проверить и убедиться, что он не собирается удалять неправильные вещи. Вы также можете захотеть выбросить -mount там, чтобы остановить его от поиска других файловых систем, которые вы установили

* не расширяет файлы точек. Вы должны сказать, например:

 rm ./.*.un~ 

Если вы используете find , который, вероятно, был бы самым простым, я бы использовал

 find -iname ".*.un~" ... 

вместо:

 find -iname "*.un~" ... 

Поскольку последний будет соответствовать foo.un~ а также .foo.un~ .

И, да, сначала сделайте сухой пробежку, чтобы убедиться, что у вас правильные спички.

  • Копировать-вставку для vim не работает, когда включена функция мыши (: set mouse = a)?
  • vipe misbehaving при замене процесса bash
  • Подавлять файлы восстановления при редактировании конфиденциальных файлов в vi, nvi и vim
  • отключить поддержку мыши в `vim` в среде« gnome-terminal »
  • Невозможно вставить команду в vim 8.0
  • Как прокручивать большой файл данных, сохраняя заголовок
  • Редактирование Live diff-mode в vim
  • неправильные / перезаписанные поля при использовании vim на экране GNU
  • Как разрешить Page Up на экране GNU?
  • Есть ли эквивалент для vim \ zs в sed или perl?
  • Текстовый редактор с отложенным переносом слов
  • Linux и Unix - лучшая ОС в мире.