需求场景:进行CP拷贝备份的时候,子目录里面的某些大文件或是一些log文件是无需备份的,那么在CP操作时需要忽略掉指定的目录。

案例演示如下:备份data目录,但是不包括里面的share子目录。

先看一下data目录都包括什么文件:

$ tree data
data
├── control
├── debian-binary
├── md5sums
├── postinst
├── prerm
└── usr
├── bin
│   ├── mime-tool
│   └── topal
└── share
├── doc
│   └── topal
│   ├── changelog.Debian.gz
│   ├── changelog.gz
│   ├── changelog.html.gz
│   ├── copyright
│   ├── Features.html
│   ├── README.Debian
│   └── topal.pdf.gz
├── man
│   └── man1
│   ├── mime-tool.1.gz
│   └── topal.1.gz
└── topal
└── patches
├── alpine-1.00.patch
├── alpine-1.10.patch
├── alpine-2.00.patch-1
├── alpine-2.00.patch-2
├── alpine-2.02.patch-1
├── alpine-2.02.patch-2
├── pine-4.44.patch
├── pine-4.50.patch
├── pine-4.53.patch
├── pine-4.58.patch
├── pine-4.60.patch
└── pine-4.64.patch 9 directories, 28 files

操作指令:

$ cd data/
$ find . -iname share -prune -o -print0 | cpio -pmd0 /tmp/data3/

然后查看拷贝的目录机构:

$ tree /tmp/data3
/tmp/data3
├── control
├── debian-binary
├── md5sums
├── postinst
├── prerm
└── usr
└── bin
├── mime-tool
└── topal 2 directories, 7 files

发现share子目录被完美的忽略掉了。

注意:一定要cd到data/目录下操作,否则拷贝后在目标目录会带上data/这一层。

另外,根据实际需求,还有更高级的组合用法,如:

$ find . -iname share -prune -o  ! -name '*log*'  ! -size +100M -print0   | cpio -pmd0 /tmp/data2

该指令不仅会忽略share子目录,还会忽略名称中包涵“log”字符串的文件或文件夹,以及忽略大于100M的文件。

cp备份操作时如何忽略指定的目录的更多相关文章

  1. cp -rf 操作时依然会提示覆盖

    在linux上经常会使用cp -rf命令,该命令就是强制覆盖指定目录下的文件,但有时使用该命令依然会提示是否覆盖,cp命令的参数有如下一些: 参数说明: -a:此选项通常在复制目录时使用,它保留链接. ...

  2. 发布web项目时,忽略指定文件夹或文件

    参考:http://blogs.msdn.com/b/webdev/archive/2010/04/22/web-deployment-excluding-files-and-folders-via- ...

  3. tar命令: 对某目录文件打tar包时,排除指定的目录或文件

     如某当前目录存在以下文件或目录: 1.txt2.txt3.txtdir1dir2my2015.tarmy2016.tar 若要对当前目录除1.txt 和dir1.tar外,打包tar 步骤一.建立e ...

  4. IPC操作时IPC_CREAT和IPC_EXCL选项的说明

    IPC(包括消息队列,共享内存,信号量)的xxxget()创建操作时,可以指定IPC_CREAT和IPC_EXCL选项.以共享内存为例:当只有IPC_CREAT选项打开时,不管是否已存在该块共享内存, ...

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

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

  6. 挖一挖MongoDB的备份与还原(实现指定时间点还原和增量备份还原)

    一  研究背景需求 目前作者所在公司的MongoDB数据库是每天凌晨做一次全库完整备份,但数据库出现故障时,只能保证恢复到全备时间点,比如,00:30 做的完整备份,而出现故障是下午18:00,那么现 ...

  7. Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器操作系统:CentOSIP:192.168.0.198端口:1521SID:orclOracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务 ...

  8. Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)

    原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对In ...

  9. SQLSERVER数据库备份操作和还原操作做了什么

    SQLSERVER数据库备份操作和还原操作做了什么 看了这篇文章:还原/备份时做了些什么 自己也测试了一下,下面说的错误日志指的是SQLSERVER ERRORLOG 一般在C:\Program Fi ...

随机推荐

  1. Linux环境变量设置/etc/profile、/etc/bashrc、~/.profile、~/.bashrc区别

    登入系统读取步骤: 当登入系统时候获得一个shell进程时,其读取环境设定档有三步 : 1.首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/p ...

  2. 3. tomcat 内存设置

    -Xms512m -Xmx1024m -XX:PermSize=512M

  3. leetcode198

    public class Solution { public int Rob(int[] nums) { ; ; ; k < nums.Length; k++) { int tmp = i; i ...

  4. tp5框架中jquery+ajax分页

    jaxa分页,点击按钮直接替换数据, //php代码$page=Request::instance()->param("page"); $page = empty($page ...

  5. css实现文本超出部分省略号显示

    一般超出文本显示分为两种:单行超出文本和多行超出文本省略号显示,实现方式使用纯css实现: div { // 单行 white-space: nowrap; overflow: hidden; tex ...

  6. sql查询语句for xml path语法

    [原地址] for xml path作用:将多行的查询结果,根据某一些条件合并到一行. 例:现有一张表 执行下面语句 select Department, (SELECT Employee+',' F ...

  7. redis安装--集群

    redis在3.0之后开始支持集群,实际生产中一般也是会部署集群了 redis官方推出了一个叫redis-trib.rb的redis集群工具(存放在源码文件的src目录下):由于redis-trib. ...

  8. Django项目vue前端依赖框架过大,工程打开太卡的问题

    前景提要:利用vue开发项目,由于依赖框架太大,导致pyCharm内存不够,项目打开太慢.步骤一:修改pyCharm的占用内存大小,按照下图操作.1.在应用程序中找到pyCharm,点击"显 ...

  9. php的pid文件指定用户

    比如pid文件指定www用户,首先得有这用户和用户组. 找到pathtophp-fpm.conf文件,修改里面得相关内容. 修改listen.owner=www listen.group=www us ...

  10. NodeJs命令

    cd命令,就是change directory的缩写,表示更改当前目录 cls命令,清屏.清屏幕命令(CLS,CLear Screen) tab键,自动补全. 上键,提示最近的命令   在cmd窗口 ...