Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Удаление подкаталогов и файлов в заданном каталоге

Автор вопроса: ShaggyОтветов: 1

Я хочу удалить все подкаталоги и файлы из каталога, но не сам каталог. Например, если я передам каталог "Образец" в переменной, а каталог "Образец" содержит три подкаталога и 3 файла, я хочу удалить все эти 3 каталога и 3 файла. На практике каталог "Образец" может содержать множество подкаталогов и файлов.

  • Используйте оболочку с командой find. Это намного проще, как один лайнер. Jasonw 17.03.2012
  • @Jasonw Perl работает не только в системах UNIX... Alnitak 17.03.2012

filedirectoryperlunlink

Ответы

Ответ 1 · рейтинг 9 · TLP

ETA: На самом деле это в perlfaq5: Как удалить дерево каталогов?

Используйте File::Path, основной модуль.

perl -MFile::Path=remove_tree -we
    'remove_tree("Sample",{keep_root=>1}) or die $!'

Опция keep_root заставит remove_tree сохранить верхний каталог:

keep_root => $bool

When set to a true value, will cause all files and subdirectories to be removed, except the initially specified directories. This comes in handy when cleaning out an application's scratch directory.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы