1

您好,文件夹结构如下

mishel/      #Parent directory  
      mike1  #sub file of mishel  
      minni1 #sub file of mishel  
      rosy1  #sub file of mishel
        rocky/      #sub directory of mishel
             missi  #subfile of rocky
             marsh  #subfile of rocky
             milly  #subfile of rocky 
               monu/     #sub directory of rocky
                  mike  #sub file of monu
                  minni #sub file of monu
                  rosy  #sub file of monu

所以这是我的问题:我想使用一个脚本,一次自动删除所有文件和子文件夹。

如果我们使用函数“rmdir(dirname)”,则目录必须为空。那么有没有机会从子目录开始删除到父目录。

4

4 回答 4

6

编写一个以目录为参数的函数。让该功能readdir在目录中执行。对于 readdir 返回的每个项目,检查它是否是一个文件 - 如果是,则将其删除。如果是目录,则以子目录作为参数再次调用该函数。如果没有项目(除了.and ..),删除目录。

于 2013-02-19T13:04:14.723 回答
1
use Path::Class;
my $dir = dir('foo');
$dir->recurse(callback => sub {
    unlink $_[0] if !$_[0]->is_dir;
});
$dir->rmtree(0, 1);

或者 :

use File::Path ('rmtree');
rmtree('foo', 0, 0);

http://www.perlmonks.org/bare/?node_id=605930

于 2013-02-19T23:50:50.713 回答
0

试试模块的remove_tree功能File::Path

于 2013-02-19T23:46:05.740 回答
0
perl -e 'system "find mishel -delete"'
于 2013-02-19T23:34:07.077 回答