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

用Linux命令行实现删除和复制指定类型的文件的更多相关文章

  1. Linux命令行批量删除文件(目录)

    快速-批量删除文件或目录 1-1.快速删除大文件夹(注意目录后的结束符'/')(对于含有海量文件的目录,不能直接rm -rf删除,这样效率很慢:) rsync -a --delete blank/ t ...

  2. linux命令(3):复制,剪切(文件和文件夹)

    一:文件命令:cp,mv linux 怎么样复制文件夹内所有文件到另一个文件夹?   cp -Rf /home/user1/* /root/temp/ 将 /home/user1目录下的所有东西拷到/ ...

  3. Python Linux 命令行执行脚本输出重定向print到日志文件

    reference: https://unix.stackexchange.com/questions/182537/write-python-stdout-to-file-immediately   ...

  4. 详解Linux命令行下常用svn命令

    1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/do ...

  5. Linux命令行下常用svn命令

    1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/do ...

  6. 在 Linux 命令行中使用和执行 PHP 代码

    PHP是一个开源服务器端脚本语言,最初这三个字母代表的是“Personal Home Page”,而现在则代表的是“PHP:Hypertext Preprocessor”,它是个递归首字母缩写.它是一 ...

  7. 在Linux主机使用命令行批量删除harbor镜像

     在Linux主机使用命令行批量删除harbor镜像 脚本使用说明: 此脚本不是万能脚本,根据自身环境要调整很多 能用harbor的域名就不要用IP 脚本前半部分可以套用,后半部分需一步一步试错,结合 ...

  8. 十五个最常用Linux命令行 - imsoft.cnblogs

    众多Linux管理员在使用Linux的时候会经常使用到很多Linux命令行,其中有绝大部分不是经常使用到的.在本文中主要为大家总结了经常使用的十五个最常用Linux命令行,希望对刚刚接触Linux命令 ...

  9. Linux命令行下cp,rm,mv命令的使用

    以下的内容来源于<鸟哥的私房菜> Linux命令行下的复制.删除与移动:cp,rm,mv cp(copy)复制        cp这个命令的用途很多,除了单纯的复制之外,还可以创建链接文件 ...

随机推荐

  1. IT见解

    IT见解 北京海淀区  2014-10-18   张俊浩 *域名的市值在走低,因其功能被新浪.腾讯微博.微信大V这种账号所代替 *小米将自己定位为互联网公司,而不是手机公司 *手机不远的未来会成为公共 ...

  2. 使用AndroidStudio快速开发教程

    关于AndroidStudio的使用 参考:http://www.codes51.com/article/detail_98914.html  1.对于开发环境的通性:编写 调试 视图   一般的开发 ...

  3. oracle 数据库技术支持生命周期表

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl4b3Jh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...

  4. 点击按钮,通过JS代码实现复制INPUT表单,表格:

    获取表单: <SCRIPT LANGUAGE="JavaScript"> function copyinput() { var input=document.getEl ...

  5. 安装Windows2003操作系统 - 初学者系列 - 学习者系列文章

    Windows 2003是一款经典的服务器操作系统.以前笔者工作的时候就是用的这款操作系统来进行编程的.下面就对该操作系统的安装进行介绍(部分步骤参见XP的安装http://www.cnblogs.c ...

  6. js根据IP地址判断城市

    var province = '' ;var city = '' ;jQuery.getScript("http://int.dpool.sina.com.cn/iplookup/iploo ...

  7. hibernate在持久对象的生命周期(三州:自由状态,持久状态,自由状态 之间的转换)

    三种状态的基本概念: 1.  临时身份(Transient):也被称为自由状态,它只存在于内存中,并且在数据库中没有相应的数据. 使用new创建的对象,久化,没有处于Session中,处于此状态的对象 ...

  8. ajax的post请求

    get和post是http请求方法最主要的两种方式. post: 来个例子test.html <!doctype html> <html lang="en"> ...

  9. switch与java,c#的异同

    <script type="text/javascript" language="javascript"> //JavaScript控制语句基本和以 ...

  10. MVC 过滤器1

    ASP.NET MVC 过滤器(一) 前言 前面的篇幅中,了解到了控制器的生成的过程以及在生成的过程中的各种注入点,按照常理来说篇幅应该到了讲解控制器内部的执行过程以及模型绑定.验证这些知识了.但是呢 ...