Удалите все файлы отмены 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: подсчитывать все вхождения (в том числе несколько в одной строке) символа или слова
  • Эмуляция Vim в среде IDE vs gVim как IDE
  • vim: используйте другую цветовую схему при подключении через SSH
  • В xterm (mintty, bash), как я могу открыть файл в существующем процессе vim?
  • vim -d показать только различия
  • Становление корня изнутри Vim
  • Как включить мышь в Vim?
  • Где vim после установки pkg?
  • как сфокусировать различные «регионы» (Ctrl-a S) с помощью мыши в `screen`?
  • Невозможно отредактировать файл .vimrc
  • Interesting Posts

    Поиск отлично работает в командной строке, но не работает в скрипте

    Регистрация терминалов с помощью шпатлевки на AIX (включая smitty)

    Храните пользователя ProFTPD в своей домашней папке

    Почему мой файл ~ / .bash_profile не работает?

    Предотвращение завершения экрана GNU после завершения сеанса завершения сеанса

    Новая строка после командной строки

    Как запустить ipsec на Gentoo после переноса на systemd?

    Показать ip на boot – centos 7

    DD с определенным рисунком

    Создание строк слов с разделителями пространства из вырезанного выражения

    Использует ли aptitude безопасное обновление или полное обновление в визуальном режиме?

    Как права на файлы работают с файловой системой раздела?

    Восстановление данных с поврежденного жесткого диска – Внешний USB-накопитель

    Что произойдет, если я удалю все пароли пользователей?

    Обновить / перезагрузить активную вкладку браузера из командной строки?

    Linux и Unix - лучшая ОС в мире.