博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell 实例:备份最后一天内所有修改过的文件
阅读量:4698 次
发布时间:2019-06-09

本文共 979 字,大约阅读时间需要 3 分钟。

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

程序代码如下:

#!/bin/bashBACKUPFILE=backup-$(date +%y-%m-%d)# 在备份文件中嵌入时间。archive=${1:-$BACKUPFILE}# 如果在命令行中没有指定备份文件的文件名,那么将默认使用"backup-YYYY-MM-DD"文件名。tar cvf - `find . -mtime -1 -type f -print` > $archive.targzip $archive.tarecho "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 作为定界符。

转载于:https://www.cnblogs.com/GyForever1004/p/8495172.html

你可能感兴趣的文章
数据访问 投票习题
查看>>
cnblog!i'm coming!
查看>>
使用点符号代替溢出的文本
查看>>
Axios 中文说明
查看>>
fatal: remote origin already exists.
查看>>
gridview 自定义value值
查看>>
2018二月实现计划成果及其三月规划
查看>>
类名.class和getClass()区别
查看>>
12/17面试题
查看>>
LeetCode 242. Valid Anagram
查看>>
JSP表单提交乱码
查看>>
如何适应现代雇佣关系
查看>>
团队项目(第五周)
查看>>
SQL 优化经验总结34条
查看>>
开源 视频会议 收藏
查看>>
核心J2EE模式 - 截取过滤器
查看>>
.net开源CMS
查看>>
JdbcTemplate
查看>>
第一次使用maven记录
查看>>
SharePoint服务器端对象模型 之 使用CAML进展数据查询
查看>>