如何使用Perl递归删除所有.svn目录?

Luc*_*jer 4 perl

Perl脚本会看起来像一个目录,然后.svn以递归方式删除该目录中的所有目录?

(没有外壳,跨平台)

Sin*_*nür 14

你可以(也可能应该)首先使用svn export.

否则,使用File :: FindFile :: Path :: rmtree:

#!/usr/bin/perl

use strict; use warnings;

use File::Find;
use File::Path qw( rmtree );
use File::Spec::Functions qw( catfile );

find(\&rm_dot_svn, $_) for @ARGV;

sub rm_dot_svn {
    return unless -d $File::Find::name;
    return if /^\.svn\z/;
    rmtree(catfile $File::Find::name, '.svn');
    return;
}
Run Code Online (Sandbox Code Playgroud)