删除给定目录中的子目录和文件

时间:2012-03-17 14:38:19

标签: perl file directory unlink

我想从目录中删除所有子目录和文件,但不删除目录本身。例如,如果我在变量中传递“Sample”目录,并且“Sample”目录包含三个子目录和3个文件,我想删除所有3个目录和3个文件。实际上,“Sample”目录可以包含许多子目录和文件。

1 个答案:

答案 0 :(得分:9)

ETA:这实际上是在perlfaq5:How do I delete a directory tree?

使用核心模块File::Path

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

keep_root选项将导致remove_tree保留顶级目录:

  

keep_root => $布尔

  设置为true值时,将导致所有文件和子目录   被删除,除了最初指定的目录。这进来了   清理应用程序的临时目录时很方便。