В одной из наших предыдущих статей мы объяснили, как найти каталоги и файлы, потребляющие наибольшее дисковое пространство в файловой системе в Linux.
Если вы заметили, что такие каталоги больше не содержат важных файлов и подкаталогов (например, старые резервные копии, загрузки и т. д.),
Вы можете удалить их, чтобы освободить место на диске.
В этом кратком руководстве описывается, как найти и удалить каталоги рекурсивно в файловой системе Linux.
Для достижения вышеуказанной цели вы можете использовать команду find вместе с командой rm, используя синтаксис ниже.
Здесь знак + в конце позволяет одновременно считывать несколько каталогов.
$ find /start/search/from/this/dir -name "dirname-to-delete" -type d -exec /bin/rm -rf {} +
Внимание: вы должны использовать команду rm внимательно, потому что это одна из самых опасных команд для использования в Linux: вы можете случайно удалить критические системные каталоги, что приведет к сбою системы.
В приведенном ниже примере мы будем искать каталог с именем files_2008 и удалять его рекурсивно:
$ $find ~/Downloads/software -name "files_2008" -type d -exec /bin/rm -rf {} +
Вы также можете использовать find и xargs; в следующем синтаксисе, действие -print0 позволяет печатать полный путь каталога на стандартном выходе, за которым следует нулевой символ:
$ find /start/search/from/this/dir -name "dirname-to-delete" -type d -print0 | xargs -0 /bin/rm -rf "{}"
Используя тот же пример выше, мы имеем:
$ find ~/Downloads/software -name "files_2008" -type d -print0 | xargs -0 /bin/rm -rf "{}"
И последнее, но не менее важное: если вас беспокоит безопасность ваших данных, вы можете изучить 3 способа постоянного и безопасного удаления «файлов и каталогов» в Linux.