Заметки программиста

Удаление каталогов по списку

Для удаления каталогов из файла в Ubuntu используйте команду xargs, которая будет передавать имена каталогов из файла команде rm -r для рекурсивного удаления. Например, если ваш список каталогов находится в файле catalogs.txt, выполните команду: xargs -a catalogs.txt -I {} rm -r {}

Пошаговая инструкция

  1. Создайте файл со списком каталогов. В этом файле каждый каталог должен быть указан на новой строке. Например, создайте файл catalogs.txt с содержимым:

Код

    /home/user/folder1
/mnt/backup/old_data
/tmp/temp_files
  1. Выполните команду в терминале : 

Код

    xargs -a catalogs.txt -I {} rm -r {}
  • xargs: команда, которая читает элементы из стандартного ввода или файла и выполняет команду, используя эти элементы как аргументы. 
  • -a catalogs.txt: указывает xargs, что нужно читать данные из файла catalogs.txt
  • -I {}: указывает xargs использовать {} как заполнитель для имени каталога, который читается из файла. Вместо {} будет подставляться каждая строка из файла. 
  • rm -r: команда для удаления каталогов. Опция -r означает «рекурсивно», то есть удаляется сам каталог и все его содержимое (файлы и подкаталоги). 

Важные замечания

  • Используйте с осторожностью: Команда rm -r безвозвратно удаляет файлы и каталоги. Убедитесь, что в списке нет нужных вам каталогов, прежде чем запускать команду. 
  • Проверка перед удалением: Для большей безопасности можно сначала проверить, какие каталоги будут удалены, добавив опцию -print0 к xargs, а затем просмотреть вывод: 

Код

    xargs -a catalogs.txt -0 echo rm -r

После проверки и убедившись, что все правильно, выполните команду без echo

  • Пустые каталоги: Если вы хотите удалить только пустые каталоги, используйте rmdir вместо rm -r. Однако для удаления непустых каталогов (rmdir не сработает), команда rm -r необходима.