在一个"tarball"中(经过 tar 和 gzip 处理过的文件)备份最后 24 小时之内当前目录下所有修改的文件。

程序代码如下:

#!/bin/bash

BACKUPFILE=backup-$(date +%y-%m-%d)
# 在备份文件中嵌入时间。 archive=${1:-$BACKUPFILE}
# 如果在命令行中没有指定备份文件的文件名,那么将默认使用"backup-YYYY-MM-DD"文件名。 tar cvf - `find . -mtime -1 -type f -print` > $archive.tar gzip $archive.tar echo "Directory $PWD backed up in archive file \"$archive.tar.gz\"." exit 0

注意

如果在发现太多的文件的时候,或者是如果文件名包括空格的时候,将执行失败。

建议使用下边的两种代码之一

# -------------------------------------------------------------------
# find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar"
# 使用 gnu 版本的 find # find . -mtime -1 -type f -exec tar rvf "$archive.tar" '{}' \;
# 对于其他风格的 UNIX 便于移植,但是比较慢。
# -------------------------------------------------------------------

find 的 -exec 选项举例说明

找出当前目录下所有 .txt 文件并以 “File: 文件名” 的形式打印出来:

find . -type f -name "*.txt" -exec printf "File: %s\n" {} \;

上例中,{} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名。

xargs 的 -0 选项

xargs -0 将 \0 作为定界符。

Shell 实例:备份最后一天内所有修改过的文件的更多相关文章

  1. 《Advanced Bash-scripting Guide》学习(九):备份最后一天所有修改的文件

    本文所选的例子来自于<Advanced Bash-scripting Gudie>一书,译者 杨春敏 黄毅 Example 3-4. 备份最后一天所有修改的文件 #!/bin/bash # ...

  2. (转)shell实例手册

    原文地址:http://hi.baidu.com/quanzhou722/item/f4a4f3c9eb37f02d46d5c0d9 实在是太好的资料了,不得不转 shell实例手册 0说明{ 手册制 ...

  3. shell 实例

    转载自:https://github.com/liquanzhou/ops_doc    这里只作为笔记使用,不做他用 shell实例手册 0 说明{ 手册制作: 雪松 更新日期: 2018-09-1 ...

  4. 【转载】shell实例手册

    原文地址:shell实例手册  作者:没头脑的土豆 shell实例手册 0说明{ 手册制作: 雪松 更新日期: -- 欢迎系统运维加入Q群: 请使用"notepad++"打开此文档 ...

  5. (转) shell实例手册

    shell实例手册 1文件{ touch file              # 创建空白文件rm -rf 目录名           # 不提示删除非空目录(-r:递归删除 -f强制)dos2uni ...

  6. centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课

    centos  MySQL主从配置 ntsysv   chkconfig  setup命令  配置MySQL 主从 子shell  MySQL备份  kill命令  pid文件  discuz!论坛数 ...

  7. shell 实例收集

    shell编程入门 http://www.runoob.com/linux/linux-shell-variable.html http://c.biancheng.net/cpp/shell/ 1. ...

  8. android进入adb shell步骤及修改sqlite数据库文件的权限

    1 准备工作 (1)将adb.exe从  \Sdk\platform-tools目录下移动到 \Sdk\tools目录下(主要是看emulator这几个文件在哪个文件夹就把adb.exe移动到哪个文件 ...

  9. Shell脚本备份Mongodb数据库

    目录 环境还原 环境创建 编写shell脚本 准备文件 创建shell脚本 执行shell脚本 进阶版 感谢 诚邀访问我的个人博客:我在马路边 更好的阅读体验点击查看原文:Shell脚本备份Mongo ...

随机推荐

  1. STL基础4:deque

    #include <iostream> #include <queue> #include <string> using namespace std; #defin ...

  2. quick-cocos2d-x lua框架解析(一)对UI进行操作的UiUtil脚本

    最近一段时间接手了一个cocos游戏项目,由于我是U3D开发入门,所以花了一段时间来钻研cocos2d的使用与项目架构.与U3D相比,cocos2d的开发界面实在做的不咋地.不过在看过源码之后,源码跑 ...

  3. 10. Halloween 万圣节

    10. Halloween 万圣节 (1) On October the 31st,across Britain and the USA,thousands of children are dress ...

  4. 【MarkMark学习笔记学习笔记】javascript/js 学习笔记

    1.0, 概述.JavaScript是ECMAScript的实现之一 2.0,在HTML中使用JavaScript. 2.1 3.0,基本概念 3.1,ECMAScript中的一切(变量,函数名,操作 ...

  5. .gitignore无效解决方案以及git rm和rm的区别

    一. gitignore 先来了解一下gitignore的常用语法 斜杠“/”表示目录, 是否已斜杠开头有很大区别,如 /build 与 build/ 的区别:其中 build/ 表示不管在哪个位置的 ...

  6. [算法专题] LinkedList

    前段时间在看一本01年出的旧书<effective Tcp/Ip programming>,这个算法专题中断了几天,现在继续写下去. Introduction 对于单向链表(singly ...

  7. 剑指offer编程题Java实现——面试题10二进制中1的个数

    题目: 请实现一个函数,输入一个整数,输出该整数二进制表示中1的个数.例如,把9表示成二进制是1001,有2位是1,该函数输出2解法:把整数减一和原来的数做与运算,会把该整数二进制表示中的最低位的1变 ...

  8. 牛客JS编程大题(二)

    11.统计数组 arr 中值等于 item 的元素出现的次数 function count(arr, item) { var num = 0; for(var i = 0;i < arr.len ...

  9. 构建NTP时间服务器

    NTP服务器是用于局域网服务器时间同步使用的,可以保证局域网所有的服务器与时间服务器的时间保持一致,某些应用对时间实时性要求高的必须统一时间. 互联网的时间服务器也有很多,例如ntpdate ntp. ...

  10. ajax接口和后台交互

    //定义一个公众处理ajax的方法 function handelAjax(url,method,parm,callback) { $.ajax({ url:url, type:method, dat ...