首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在perl中开发一个可以递归删除子文件夹和父目录中的数据的脚本?

如何在perl中开发一个可以递归删除子文件夹和父目录中的数据的脚本?
EN

Stack Overflow用户
提问于 2013-02-19 20:59:49
回答 4查看 148关注 0票数 1

我有如下的文件夹结构

代码语言:javascript
复制
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)“,目录必须为空。所以有没有可能从子目录开始删除到父目录。

EN

回答 4

Stack Overflow用户

发布于 2013-02-19 21:04:15

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

票数 6
EN

Stack Overflow用户

发布于 2013-02-20 07:50:51

代码语言:javascript
复制
use Path::Class;
my $dir = dir('foo');
$dir->recurse(callback => sub {
    unlink $_[0] if !$_[0]->is_dir;
});
$dir->rmtree(0, 1);

或者:

代码语言:javascript
复制
use File::Path ('rmtree');
rmtree('foo', 0, 0);

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

票数 1
EN

Stack Overflow用户

发布于 2013-02-20 07:34:07

代码语言:javascript
复制
perl -e 'system "find mishel -delete"'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14969580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档