perl 把源目录下的文件拷贝到目标目录(带路径)
2014-11-13 17:58
1061 查看
#!/bin/perl
#perl "D:\separateFliesBySearch.pl" "D:/WebRoot" "C:/Users/Documents/" ".xml" "<beans xmlns=\"http:\/\/www\.springframework\.org\/schema\/beans\""
use strict;
use warnings;
use File::Find;
use File::Copy;
use File::Path;
die "使用的参数:$0,不符合要求,请指定目录及搜索内容" unless @ARGV>=4;
my $srcdir = $ARGV[0];
my $distdir = $ARGV[1];
my $suffix = $ARGV[2];
my $reg = $ARGV[3];
my $verbose = 0;
if($ARGV[4])
{
$verbose = $ARGV[4];
}
searchContentsInFiles($srcdir,$suffix,$reg);
sub searchContentsInFiles
{
my $srcdir=$_[0];
my $suffix=$_[1];
if(! -e $distdir)
{
#第二个参数为是否显示日志,第三个目录权限
mkpath($distdir,$verbose,0711);
}
my @filenames=find( \&wanted,$srcdir);
close FH;
}
sub wanted
{
my $file = $File::Find::name;
my $filename=$_;
my $filedir=$File::Find::dir;
if(-f $file && /$suffix/ && !/\.svn/)
{
open(FH,"$file");
if(grep {/$reg/} <FH>)
{
#$_="$filedir";
my $tmpfiledir=$filedir;
$tmpfiledir=~ s/$srcdir//;
my $tmpdistdir="$distdir$tmpfiledir";
#print "$tmpdistdir\n";
if(!-e "$tmpdistdir")
{
#第二个参数为是否显示日志,第三个目录权限
mkpath("$tmpdistdir",$verbose,0711);
}
copy($file,"$tmpdistdir");
}
}
}
#perl "D:\separateFliesBySearch.pl" "D:/WebRoot" "C:/Users/Documents/" ".xml" "<beans xmlns=\"http:\/\/www\.springframework\.org\/schema\/beans\""
use strict;
use warnings;
use File::Find;
use File::Copy;
use File::Path;
die "使用的参数:$0,不符合要求,请指定目录及搜索内容" unless @ARGV>=4;
my $srcdir = $ARGV[0];
my $distdir = $ARGV[1];
my $suffix = $ARGV[2];
my $reg = $ARGV[3];
my $verbose = 0;
if($ARGV[4])
{
$verbose = $ARGV[4];
}
searchContentsInFiles($srcdir,$suffix,$reg);
sub searchContentsInFiles
{
my $srcdir=$_[0];
my $suffix=$_[1];
if(! -e $distdir)
{
#第二个参数为是否显示日志,第三个目录权限
mkpath($distdir,$verbose,0711);
}
my @filenames=find( \&wanted,$srcdir);
close FH;
}
sub wanted
{
my $file = $File::Find::name;
my $filename=$_;
my $filedir=$File::Find::dir;
if(-f $file && /$suffix/ && !/\.svn/)
{
open(FH,"$file");
if(grep {/$reg/} <FH>)
{
#$_="$filedir";
my $tmpfiledir=$filedir;
$tmpfiledir=~ s/$srcdir//;
my $tmpdistdir="$distdir$tmpfiledir";
#print "$tmpdistdir\n";
if(!-e "$tmpdistdir")
{
#第二个参数为是否显示日志,第三个目录权限
mkpath("$tmpdistdir",$verbose,0711);
}
copy($file,"$tmpdistdir");
}
}
}
相关文章推荐
- [随笔]Linux下,如何将一个文件及其所在的递归路径一起拷贝到目标目录?
- 拷贝一个目录或者文件到指定路径下
- 拷贝一个目录(文件)到指定路径
- --parents这样拷贝的时候,会在目标路径中创建源文件参数中的所有父目录层级
- Android 拷贝assets目录下所有文件及文件夹到指定路径
- 拷贝—标准文件到目标目录的方法
- 文件操作(把源文件拷贝到目标文件路径下)
- 拷贝A下面的B目录到C下面,只拷贝目标结构,不拷贝文件
- 拷贝一个目录或者文件到指定路径下
- cocos2dx将资源目录(Resources)文件拷贝到可写路径
- Android中获取App的File路径,以及拷贝Asses目录下的文件
- 从控制台录入一个文件路径,将其拷贝到当前目录
- PHP获取目标路径的文件目录
- 使用perl将当前目录中子目录下的相应文件拷贝到一个文件夹中
- 路径,文件,目录,I/O常见操作汇总(一)
- 路径,文件,目录,I/O常见操作汇总
- JAVA 程序中如何拷贝一个目录下的文件及子目录到另一个目录,如何获取系统环境变量等...
- Perl中文件与目录的操作
- 路径,文件,目录,I/O常见操作汇总(二)
- 路径,文件,目录,I/O常见操作汇总(一)