在备份ltedecoder程序时,须要把此文件夹拷由到bak文件夹下。但decoder文件夹下有个大文件,不须要备份,还有日志问题,也不须要备份,怎样实现呢??

方法: 

   cd /source-dir

        find . -name .snapshot-prune-o-print0 | cpio -pmd0 /dest-dir

解释: This command copies the contents of /source-dir to /dest-dir, but omits files and directories  named  .snapshot (and  anything in them).  The construct-prune -o -print0 
is quite common. The idea here is  that  the  expression  before  -prune  matches  things  which  are  to be pruned.  However, the -prune action itself returns true, so the following -o  ensures that the right hand side is evaluated only for those directories
which didn't get pruned (the  contents  of the pruned directories are not even visited, so their contents are irrelevant).  The expression on the right  hand side of the -o is in parentheses only for clarity.  It emphasises that the -print0 action takes place
only for  things  that  didn't have -prune applied to them.  Because the default `and' condition between tests binds more tightly than -o, this is the default anyway, but the parentheses help to show what is going on.

此段的意思是:当找到name为.snapshot时,prune就会返回真。-o是或的意思,“或”的使用技巧是当左边的表达式为“真”时。则不会运算右边的表达式。当左边的表达式为假。则运算右边的表达式,即,当左边name不为.snapshot。则进行右边的表达式,右边的表达式意思是print文件名称(包含路径的);当找到name为.snapshot时,则不打印文件名称。这样就实现了把非.snampshot为命名的文件打印出来并交给cpio进行处理。cpio则把这些文件拷则的dest-dir中,实现忽略.snampshot文件的拷备(注:文件指目录或file名)。

拓展:

-prune -o ... -print0
“... -print0”

这里能够使用find的查找文件的參数。如-name,-size等。

find . -name Persistence -prune -o  ! -name '*log*'  ! -size +100M -print0   | cpio -pmd0 /root/do_bak/ltedecoder

上面则不仅忽略Persistence文件夹,还会忽略包涵log的文件或文件夹,还会忽略大于100M的文件。

注意: 你一定注意到了find 后面是“.”,代表当前文件夹,即此命令必须是pwd是你要拷则的文件夹里面,如你把sour-dir的文件进行拷则,则须要先cd $sour-dir。

怎样cp文件夹时忽略指定的文件夹和文件的更多相关文章

  1. git提交时忽略指定文件

    git提交时忽略指定文件 我们在项目开发过程中经常用到git来管理自己的项目,使用git版本控制进行多人协作开发具有许多优势,这里就不一一阐述了,有兴趣的同学可以自己去查找资料进行系统的学习.而本篇文 ...

  2. idea使用Git提交代码时忽略指定文件或文件夹

    简述 使用idea编写代码并使用git作为版本控制器的时候,常常不需要提交配置文件以及一些其他不需要提交的文件,可以使用.ignore插件来在上传的时候忽略一些文件或文件夹. 安装 注意:安装完成之后 ...

  3. TortoiseSVN 更新时忽略指定文件夹

    命令行可以这么来svn update –set-depth=exclude 文件夹 那么TortoiseSVN客户端呢?在文件夹右键中的”更新至版本(U)”更新深度选”排除”,确定,搞定下次更新就不会 ...

  4. svn更新时忽略指定文件或文件夹

    选择一个收SVN控制的文件夹->右击->选择TortoiseSVN->更新至版本,就会出现   选择更新深度为工作副本,再选择项目,出现如图中所示的界面,把不想更新的文件或者文件夹前 ...

  5. 让 SVN (TortoiseSVN)提交时忽略指定目录

    2013-06-23 更新 后来我使用属性来过滤,结果反而没有效果了,之后我再次尝试使用全局忽略样式设置:*/bin */obj */packages 结果又有效果了,奇怪了. ------- 由于我 ...

  6. laravel 修改时邮箱字段唯一性验证时忽略指定 ID

  7. git中 .ignore文件的配置 忽略不想上传的文件

    1.配置语法: 以斜杠“/”开头表示目录: 以星号“*”通配多个字符: 以问号“?”通配单个字符 以方括号“[]”包含单个字符的匹配列表: 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录: 此外,g ...

  8. spl处理文件(文件详细信息、文件遍历、查询指定行、写入CSV文件)

    <?php /** * 文件操作 */ //常用操作 $file = new SplFileInfo('D:/workspace/xlyy/spl/test.txt'); $file_info ...

  9. java 提取(解压)rar文件中特定后缀的文件并保存到指定目录

    内容简介 本文主要介绍使用junrar来提取rar压缩文件中特定后缀(如:png,jpg)的文件并保存到指定目录下. 支持v4及以下版本压缩文件,不支持v5及以上. 在rar文件上右键,查看属性,在压 ...

随机推荐

  1. git 版本管理工具说明

    $ git init                 (初始化本地仓库,会生成.git 文件夹  .git 文件夹里存储了所有的版本信息.标记等内容) $ git add .              ...

  2. 将已有的Eclipse项目转化为Maven项目

    将已有的Eclipse项目转化为Maven项目 我们之前在Eclipse IDE完成的Java命令行项目.Java Web项目也使用了构建工具--Ant,它帮助我们编译.运行Java源代码(无需我们自 ...

  3. Android模拟、实现、触发系统按键事件的方法

     Android模拟.实现.触发系统按键事件的方法 /** * 模拟系统按键. * * @param keyCode */ public static void onKeyEvent(final ...

  4. vim学习3

    可视模式:

  5. 六、Docker+Gitlab

    原文:六.Docker+Gitlab (1)下载镜像: docker pull gitlab/gitlab-ce (2)运行镜像: GITLAB_HOME=`pwd`/data/gitlab dock ...

  6. MySQL各个版本的区别

     文章出自:http://blog.sina.com.cn/s/blog_62b37bfe0101he5t.html 感谢作者的分享 MySQL 的官网下载地址:http://www.mysql. ...

  7. 洛谷 P1679 神奇的四次方数

    P1679 神奇的四次方数 题目描述 在你的帮助下,v神终于帮同学找到了最合适的大学,接下来就要通知同学了.在班级里负责联络网的是dm同学,于是v神便找到了dm同学,可dm同学正在忙于研究一道有趣的数 ...

  8. Vue 学习记录<1>

    1.环境搭建:(前提node.js搭建) # 全局安装 vue-cli $ npm install --global vue-cli   # 创建一个基于 webpack 模板的新项目 $ vue i ...

  9. phalcon之视图缓存

    phalcon官方站点上的视图缓存用法根本就是不通的 现提供一种行的通的方法例如以下: public function testAction() { if( $this->view->ge ...

  10. eclipse-ADT安装失败经验

    今天下载了一个eclipse,结果ADT死活安装不成功,网上试了很多的方法,最后还是失败了.最后听从同事的建议,直接使用adt-bundle了.这个环境基本上都是配置好的. 下载地址 http://w ...