Стереть резервные копии файлов внешнего жесткого диска

Я ищу способ удалить файлы автоматического резервного копирования (файлы в форме «filename.extension ~») с внешнего жесткого диска, где я сохраняю резервную копию с моего основного диска.

Если бы файлы были в / home, я мог бы стереть их с помощью bleachbit или аналогичной программы, например, ubuntu tweak.

Можно ли это сделать?

3
задан 4 February 2013 в 19:17

2 ответа

В командной строке командной строки вы можете использовать команду типа

rm -i *~

, чтобы удалить из текущего каталога те файлы, имена которых заканчиваются на ~. Флаг -i указывает rm (команда «удалить») запросить перед удалением. Если вы не знакомы с использованием команд оболочки, держите флаг -i там, пока вы не знакомы, потому что незначительные ошибки, такие как пробел в неправильном месте, могут иметь серьезные последствия.

Чтобы перечислить файлы, которые будут затронуты в текущем каталоге, вы можете сказать любое из следующего.

ls *~
ls -l *~
ls -la *~

Чтобы сделать конкретный каталог текущим рабочим каталогом, используйте команду cd и имя каталога. Например, если вы решите, что ваш резервный диск смонтирован в /media/xyz (либо с помощью команды cat /proc/mounts, упомянутой в другом ответе, либо более напрямую с помощью команды mount без параметров, или с помощью df), вы скажете: cd /media/xyz сделать каталог верхнего уровня резервного диска текущим рабочим каталогом.

Редактировать: Команда rm -i *~ влияет на файлы только в текущем каталоге и не влияет на подкаталоги. Для обработки неопределенных уровней каталогов используйте подход find, приведенный в другом ответе. Однако, если вы знаете, насколько глубоко вложены каталоги, а уровень невелик, вы можете использовать команду вроде

rm -i  *~  */*~  */*/*~

, которая, как показано, удалит файлы ~ в текущем каталоге, его прямых подкаталогах и их прямые подкаталоги.

Редактировать 2: Как упоминает gertvdijk в комментарии, неуклюжий rm, показанный в предыдущем редактировании, может быть упорядочен с помощью ** Bash 4.0+ рекурсивного выделения оболочки ( 1 ). После ввода команды shopt -s globstar автономные экземпляры ** будут рекурсивно отображаться глобально, то есть будут заменять все имена в текущем каталоге и его потомках. (shopt -u globstar выключает globstar, но поскольку вряд ли кто-то наберет ** по ошибке, разумно оставить его включенным в интерактивных оболочках.) Таким образом, после shopt -s globstar команда rm -i **/*~ удалит ~ файлы в текущем каталоге и его потомках. Обратите внимание, что если такие имена файлов содержат более нескольких миллионов символов, командная строка может стать слишком длинной для обработки bash. Подход find не имеет этого конкретного ограничения.

0
ответ дан 4 February 2013 в 19:17

Вот способ командной строки сделать это, используя find. Это немного более продвинуто, чем использование графического интерфейса, такого как Ubuntu Tweak.

  1. Найдите точку монтирования вашего внешнего жесткого диска. Существует несколько способов:

    • В вашем файловом менеджере нажмите Ctrl + L , чтобы получить текстовую панель адресов. Скопируйте это абсолютное местоположение в буфер обмена.
    • В терминале определите жесткий диск, используя cat /proc/mounts, и найдите точку монтирования. Пример:

      /dev/sdc1 /media/1589-880A vfat rw,nosuid,[...]
      

      Обозначает точку монтирования как /media/1589-880A.

  2. Откройте терминал и используйте следующую команду find, чтобы перечислить файлы, соответствующие поиску, который мы выполняем. Замените путь /media здесь на точку монтирования, которую вы только что нашли в предыдущем шаге. Я добавил -type f для фильтрации только для файлов - игнорируя ссылки и каталоги.

    find /media/1589-880A -name "*~" -type f
    
  3. Если вы довольны результатами и уверены, что хотите удалить эти файлы, выполните удаление следующим образом:

    find /media/1589-880A -name "*~" -type f -delete
    

    Примечание. : Эти файлы не будут отправляться в корзину! Они сразу же отправляются в забвение. Легкого отмены не существует. Не проси отменить это.

Не стесняйтесь модифицировать шаблон *~, чтобы разрешить другие совпадения для других случаев использования (например, *.bak, autobackup-2012-*.tar.gz и т. Д. Это просто с использованием простой оболочки оболочки. Также вполне возможно выбрать суб папка или даже родительская папка вместо точки монтирования. В любом случае, всегда сначала перечисляйте перед удалением!

При желании добавьте -xdev к команде find, чтобы предотвратить ее спуск в другие файловые системы, если вы не уверены об этом.

0
ответ дан 4 February 2013 в 19:17

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

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