织梦CMS - 轻松建站从此开始!

罗索

Linux复制指定目录及子目录下特定类型的文件

落鹤生 发布于 2015-01-17 22:56 点击:次 
需要的文件为单一类型,带目录结构复制。这种情况下可以使用tar命令将指定类型的文件打包,然后解包,同样需要组合使用find和xargs
TAG: Linux命令  

首先建立一个用于测试的目录,用'tree'命令查看其结构如下所示:

 
可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*。tes文件
目标是保持当前的目录结构,只把txt文件复制出来
 
方法一:当不需要的文件类型较为单一时,可以通过完全复制然后删除指定类型的文件完成
Step1 使用命令 cp -r test/ test2 将测试目录test下所有内容完全复制到test2,此时树形结构如下图

 
Step2 组合使用find及xargs,将*.tes文件删除
xargs是给命令传递参数的一个过滤器,可以将前一个命令产生的输出作为后一个命令的参数
命令find test2/ -name '*.tes' |xargs rm -rf, 即将find产生的输出(test2目录下的所有tes文件),作为rm的参数,从而完全删除
实际效果如图所示

 
适用场景举例:把项目文件备份,要去除其中的.svn文件,可以采用这种方式
 
 
方法二:需要的文件为单一类型,带目录结构复制
这种情况下可以使用tar命令将指定类型的文件打包,然后解包,同样需要组合使用find和xargs
 
Step1 建立目录test3
mkdir test3
 
Step2 将指定类型文件带目录结构打包
find test/ -name '*.txt' |xargs tar czf test3.tgz
 
Step3 解包到目录test3
tar zxvf test3.tgz -C test3
 
运行结果如图所示:
 

 
适用场景:较为普遍,例如可以复制某个Web项目的所有html/jsp/php文件;或复制其他项目中特定类型的源文件
(Cwind)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201501/17201.html]
本文出处:2cto 作者:Cwind
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容