如果有一个目录,想要递归删除该目录下的所有.svn
文件夹,那么Perl脚本应该长什么样子?
(无需使用shell且跨平台)
如果有一个目录,想要递归删除该目录下的所有.svn
文件夹,那么Perl脚本应该长什么样子?
(无需使用shell且跨平台)
你应该(而且可能应该)首先使用svn export。
否则,可以使用File::Find和File::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;
}
File::Spec
替代。 - Sinan Ünürrmtree
。此外,现在脚本将在命令行未指定或指定多个顶级目录时执行正确操作。 - Sinan Ünür