zoukankan      html  css  js  c++  java
  • 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文件;或复制其他项目中特定类型的源文件

  • 相关阅读:
    LeetCode 204
    华为OJ2051-最小的K个数(Top K问题)
    华为OJ1964-求解立方根(牛顿迭代法)
    华为OJ2288-合唱队(最长递增子序列)
    华为OJ2011-最长公共子串
    【Unix编程】进程间通信(IPC)
    可利用空间表(Free List)
    13.10 Scrapy 通用爬虫
    13.9 Scrapy 对接 Splash
    第十四章 分布式爬虫
  • 原文地址:https://www.cnblogs.com/gpfeisoft/p/4692679.html
Copyright © 2011-2022 走看看