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文件;或复制其他项目中特定类型的源文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值