Найти и удалить все временные файлы в каталоге пользователя

Я использую vim много, и моя область сильно сбой питания. Таким образом, я получаю много *.swp файлов, разбросанных по моему компьютеру.

Мне нужен псевдоним команды rm который удаляет все файлы с .swp , ~ , .netrwhist , .log или .bak системе (или, по крайней мере, в моем домашнем каталоге) . Команда должна удалять файлы в системном / домашнем каталоге, даже когда я нахожусь на ~/Desktop .

Как я могу это реализовать?

3 Solutions collect form web for “Найти и удалить все временные файлы в каталоге пользователя”

Это приведет к удалению всех файлов с именем, заканчивающимся на .swp , ~ , .netrwhist , .log или .bak любом месте вашего домашнего каталога. Нет подсказок, нет подтверждения, нет восстановления, файлы ушли навсегда.

 find ~ -type f \( -name '*.swp' -o -name '*~' -o -name '*.bak' -o -name '.netrwhist' \) -delete 

(Я целенаправленно опускаю *.log потому что это звучит опасно, это не распространенное расширение для временных файлов, и есть много не временных файлов с этим именем.)

Если ваша ОС не является Linux, замените -delete на -exec rm {} + .

Возможно, вы должны настроить Vim, чтобы поместить свои файлы подкачки в один каталог, установив опцию directory :

 set dir=~/tmp/vim-swap-files//,/var/tmp// 

Сначала создайте каталог. // в конце делает имя файла подкачки включать расположение каталога исходного файла, так что файлы с тем же именем в разных каталогах не приводят к сбою.

Вы можете сделать то же самое для файлов резервных копий с опцией backupdir , хотя это делает намного меньше смысла.

Если вы используете Emacs, установите auto-save-file-name-transforms чтобы указать каждый файл в один каталог.

 (setq auto-save-file-name-transforms '("\\`.*\\'" "~/tmp/emacs-auto-save-files/\\&" t)) 

Если вы специально нацеливаете файлы vim, я бы рекомендовал вам использовать переменную backupdir . :h backupdir говорит:

 'backupdir' 'bdir' string (default for Amiga: ".,t:", for MS-DOS and Win32: ".,c:/tmp,c:/temp" for Unix: ".,~/tmp,~/") global {not in Vi} List of directories for the backup file, separated with commas. - The backup file will be created in the first directory in the list where this is possible. The directory must exist, Vim will not create it for you. [... snip ...] 

Я использую эту строку в моем .vimrc:

set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp

Также вам нужно создать каталог ~ / .vim-tmp, если он уже не существует, потому что это не создает для вас.

Short Answer Удаляет временные интервалы, которые заканчиваются на ~

 find . -type f \( -iname "*~" \) -delete 

Или другие, такие как .swap и т. Д.

 find . -type f \( -iname "*.swp" \) -delete 
  • grep string из содержимого команды file, а затем удалить файл
  • Сколько файлов можно удалить сразу?
  • Оптимизировать скрипт / команду оболочки для удаления файлов
  • Удаление большого количества файлов (exec, loops ..)
  • Как я могу безопасно восстанавливать удаленные данные с флэш-накопителя USB?
  • Как выполнить команду в списке имен файлов в файле?
  • Не удалось удалить папку, даже с `--force`, sudo не требуется
  • Сценарий оболочки `rm -r`: переадресовать запрос с защитой от записи и ответить« n »
  • Как безопасно удалить жесткую ссылку в домашнюю папку?
  • Что означает * ~?
  • Как удалить каталог с несколькими subvolums btrfs?
  • Linux и Unix - лучшая ОС в мире.