linux下打包一个文件夹下当天日期的文件,打包工具用tar。 30
3个回答
展开全部
man tar
看看-N这个选项, 太久了记不清了, 大体是:
tar -zcvf -N 20120919 xxxxx.tar.gz xxxxx
表示只打包日期比20120919新的文件
看看-N这个选项, 太久了记不清了, 大体是:
tar -zcvf -N 20120919 xxxxx.tar.gz xxxxx
表示只打包日期比20120919新的文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#!/bin/bash
date=`date -d "1 day ago 23:59:59" "+%D %T"`
find $1 -type f -newermt "$date" -exec tar uvf $2 {} \;
把上面的内容存成文件,比如 test.sh, 然后 chmod +x test.sh。假定你要打包 /home/xxx 下当天改动过的文件到 /tmp/xxx.tar 中,那么用
test.sh /home/xxx /tmp/xxx.tar
即可
date=`date -d "1 day ago 23:59:59" "+%D %T"`
find $1 -type f -newermt "$date" -exec tar uvf $2 {} \;
把上面的内容存成文件,比如 test.sh, 然后 chmod +x test.sh。假定你要打包 /home/xxx 下当天改动过的文件到 /tmp/xxx.tar 中,那么用
test.sh /home/xxx /tmp/xxx.tar
即可
追问
执行出错,错误信息:find: 无效断言
追答
可能是你 find 的版本问题,find --version 打印什么? 查了一下,我的命令要 4.3.3 之后才有。如果确实是版本问题,改成
#!/bin/bash
tmpfile=/tmp/$$.tmp
touch -d "`date -d '1 day ago 23:59:59'`" $tmpfile
find $1 -type f -newer $tmpfile -exec tar uvf $2 {} \;
rm -f $tmpfile
脚本用法不变。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询