perl 递归的删除目录和目录中的文件

Posted ajanuw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl 递归的删除目录和目录中的文件相关的知识,希望对你有一定的参考价值。

#!/usr/bin/perl
use autodie;
use utf8;
use Encode qw(decode encode);
sub del_dir{
    my $path = shift @_;
    my @files = <$path/* $path/.*>;
    my @dirs = (); # save empty directory

    for( @files ){
        next if /.{1,2}$/g; # skip ./. ./.. directories 
        (-d -e $_) ? push(@dirs, $_) && del_dir($_)
                : unlink $_ if -e _;
    };
    for(@dirs){
        rmdir $_ if -e $_; 
    };
    rmdir $path;
};

del_dir(shift @ARGV);

执行脚本

λ perl main.pl ./src

以上是关于perl 递归的删除目录和目录中的文件的主要内容,如果未能解决你的问题,请参考以下文章

如何递归复制目录并在 Perl 中过滤文件名?

Java.nio:最简洁的递归目录删除

压缩和下载目录后递归删除目录失败

Java递归删除目录及目录下的文件

Java递归删除目录及目录下的文件

如何递归删除目录中的最小文件? [关闭]