zoukankan      html  css  js  c++  java
  • 用Linux命令行实现删除和复制指定类型的文件

    (一)Linux 删除当前目录及子目录中所有某种类型的文件

    方法1 : 此方法不能处理目录中带空格的那些。

    rm -rf `find . -name "*.example"`

    Linux的文件名(目录也是一种文件)不建议带空格,命令行中不好处理这个空格。


    方法2:组合使用 find 及 xargs

    find test2/ -name '*.example' |xargs rm -rf

    (xargs 是给命令传递参数的一个过滤器,可以将前一个命令产生的输出作为后一个命令的参数。)
    即将 find 产生的输出(test2 目录下的所有 example 类型文件),作为 rm 的参数,从而完全删除。


    方法3: 组合使用 find 和 delete 命令

    find . -name *.example -delete

    此方法可以看作是对 方法2 的简化改进 。

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

    首先建立一个用于测试的目录,目录中包含用于测试的 *.txt 文件和 *.tes 文件。
    目标是保持当前的目录结构,只把 txt 文件复制出来。

    方法1:当不需要的文件类型较为单一时,可以通过完全复制然后删除指定类型的文件完成

    // Step1 使用如下命令,将测试目录 test 下所有内容完全复制到 test2
    cp -r test/ test2 
    // Step2 组合使用find及xargs,将 *.tes 文件删除。
    find test2/ -name '*.tes' |xargs rm -rf 

    适用场景举例:把项目文件备份,要去除其中的 .svn 文件,可以采用这种方式。

    方法2:需要的文件为单一类型,带目录结构复制
    这种情况下可以使用 tar 命令将指定类型的文件打包,然后解包。

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

  • 相关阅读:
    Window10 Electron 开发环境搭建及打包exe程序
    windows 10 安装node.js
    php 电商系统SKU库存设计
    doT.js使用介绍
    ajax提交时 富文本CKEDITOR 获取不到内容
    tp5 接入腾讯对象存储COS
    redis搭建
    TP3.2.3 接入阿里sms 短信接口
    ckeditor + ckfinder + oss存储
    在项目中随手把haseMap改成了currenHaseMap差点被公司给开除了。
  • 原文地址:https://www.cnblogs.com/yshl-dragon/p/3277841.html
Copyright © 2011-2022 走看看