`
zengshaotao
  • 浏览: 792273 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

perl 把源目录下的文件拷贝到目标目录(带路径)

    博客分类:
  • perl
 
阅读更多

原文地址:http://blog.csdn.net/qin123qq/article/details/41083741

 

#!/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工具_Setup详细安装说明

    "ETL拷贝到autu_home的目录下.rar"可能包含了一个用于数据提取、转换和加载的Perl脚本或工具。执行ETL过程通常涉及以下步骤: 1. **数据提取**:从各种数据源(如数据库、CSV文件)读取数据,Perl的DBI模块可以方便...

    网管教程 从入门到精通软件篇.txt

    网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...

    三代微生物基因组组装流程讲解.pdf

    接着,需要将数据从本地服务器拷贝至云平台,这一过程通过scp命令完成,需要指定本地和云平台的目标路径以及数据文件。 在数据处理完成后,将进入组装环节。组装通常采用falcon工具,其配置文件为fc_run.cfg,输入...

    sphinx中文语音训练手册

    训练完毕,将需要的文件拷贝到test目录中,运行命令进行朗读测试,所需的脚本如下: rem 拷贝需要的文件 rem 创建目标目录并拷贝数据文件 md D:\sphinxtrain\bergtrain\test\bergtrain.cd_cont_200 copy /Y D:\...

    vc6.0创建Symbian工程

    变量值:包含多个路径,确保所有必要的工具和库文件可被访问,例如Visual Studio的Bin目录、Perl的bin目录、Symbian SDK的工具目录等。 ### 三、配置VC6.0环境 接下来,需要对VC6.0进行特定的配置,使其支持...

    MTK开发——MTK入门培训教程

    - 安装完毕后,需将 `mfc patch` 中的文件拷贝到 `system32` 目录中。 ##### 4. 下载线驱动 下载线驱动是连接计算机和MTK设备的关键组件,确保数据传输稳定可靠。 **安装路径与步骤**: - 路径:`mtk 环境工具\...

    linux 所有命令的集合

    `dirname` 命令用于从文件路径中提取目录部分,去除文件名。 #### du -- 报告磁盘空间使用情况 `du` 命令用于报告文件或目录占用的磁盘空间大小。 #### dumpkeys -- 显示键盘映射表 `dumpkeys` 命令用于显示当前...

    linux下C++调试技巧

    - **拷贝**:`cp`命令用于复制文件,对于追踪程序运行时生成的临时文件非常有用。 - **标准错误和标准输出重定向**:`2&gt;`和`&gt;`分别用于重定向错误输出和标准输出,便于查看或分析日志。 - **ps**:列出系统中的进程...

    MySQL备份与恢复之热拷贝(4)

    热拷贝的操作可以在数据库服务运行的状态下进行,这为在保持服务可用的同时进行备份提供了便利。热拷贝的主要优势在于备份操作的执行速度较快,对系统性能的影响较小,这在对服务稳定性和数据一致性要求较高的环境中...

    Linux操作系统基础教程

    2需要为购满许可证付出高价还要受到系统安装数量的限制。我在讲义的最后面附有 GPL 的 非官方中文译稿。目前 Linux 中国的发行版本(Linux Distribution)主要有 Red Hat (红帽子) , Slackware, Caldera, Debian...

    mtk软件环境的搭建说明.doc

    - **DLL文件复制**: 将`\vc6\VC98\DEBUG`目录下的`XXXX.DLL`动态链接库文件拷贝到`C:\WINDOWS\system`目录下。 - **用途**: VC++主要用于计算机上的仿真工作。 **2.2 安装ARM** - **安装**: 按照文件中的安装信息...

    CISCO-IOS中文命令手册

    **1.9 拷贝IOS镜像文件到服务器** - **目的**:备份当前使用的IOS镜像到远程服务器。 - **命令**: - `copy flash:ios-image-file tftp`:将闪存中的IOS镜像文件通过TFTP复制到远程服务器。 **1.10 通过控制台口...

    程序员文摘第53期-精选最有价值的文章

    - 将这两个文件放在同一目录下,并创建一个新的目录,例如`/root/setup/docker`,将下载的文件拷贝至此目录。 - 在Linux环境中,进入`/root/setup/docker`目录,并给`install.sh`添加执行权限。 - 执行`install....

    升级openssl及openssh.docx

    如果服务器无法联网,可以在其他联网的计算机上完成下载操作后,将文件拷贝至目标服务器上,并按照上述步骤操作。 #### 四、升级 OpenSSH 的步骤 1. **下载 OpenSSH 源码包**:访问 OpenSSH 官方下载页面 ...

    JSON模块修改版.rar

    3. 功能扩展:增加了新的方法或函数,如支持JSON数组操作、深度拷贝、JSON路径查询等。 4. 兼容性增强:可能解决了与某些特定环境或易语言版本的兼容问题。 5. 代码结构优化:为了提高代码可读性和维护性,可能对...

    编写脚本令Xtrabackup对MySQL数据进行备份的教程

    在拷贝完成后,Xtrabackup会执行一个名为"prepare"的阶段,它使用类似InnoDB崩溃恢复的方法,将数据文件恢复到与日志文件一致的状态,并回滚未提交的事务。对于MyISAM表和InnoDB表结构等文件的备份,通常需要使用`...

    测试培训教材

    把“Cruise Booking”的测试步骤拷贝到“Cruise Search”中 按住CTRL键逐一选择所有步骤 复制步骤(CTRL+C) 选择“Cruise Search”测试,打开“设计步骤”界面 粘贴步骤(CTRL+V) 调用测试 重用:测试用例...

    C#微软培训资料

    &lt;&lt;page 1&gt;&gt; page begin==================== 目 目目 目 录 录录 ... 17.2 文件存储管理 .217 ... 17.4 异步文件操作 .227 ... 年 我们的目标就 ... 我们的目标就我们的目标就 ...这一天 微软公司正式推出了其下一代...

Global site tag (gtag.js) - Google Analytics