linux下打包一个文件夹下当天日期的文件,打包工具用tar。 30

 我来答
愤怒的大bird
推荐于2020-02-22 · 超过15用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:35.5万
展开全部
tar zcvf `date +%Y%m%d`.tar.gz file
Y 年 m月 d天
那俩点不是单引号 而是esc下面 数字“1”左边的 点
追问
你这是把文件按日期命名压缩,明显不是我问的问题,我问的是压缩当天日期的文件。
465910273
2012-09-26 · TA获得超过154个赞
知道答主
回答量:220
采纳率:0%
帮助的人:51.7万
展开全部
man tar
看看-N这个选项, 太久了记不清了, 大体是:
tar -zcvf -N 20120919 xxxxx.tar.gz xxxxx
表示只打包日期比20120919新的文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kwydwuf
2012-09-21 · TA获得超过7409个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:1989万
展开全部
#!/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
即可
追问
执行出错,错误信息: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

脚本用法不变。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式