【问题标题】:Is tar ignoring --after-date option?tar 是否忽略 --after-date 选项?
【发布时间】:2014-02-02 07:55:49
【问题描述】:

我想使用 tar 进行增量备份。 我在 2012 年 4 月 8 日进行了完整备份,后来我想备份在该日期之后创建或更改的所有文件。

所以我做了这样的事情:

cd /directory/I/wanted/to/back/up
tar --newer 2012-04-08 -cvnf "/backup/dir/$(date +%F).tar"

过了一会儿,我意识到 tar 正在归档我知道自上次备份以来没有更改的文件。我检查了他们的修改日期,他们不应该被包括在内。

我不敢相信,所以我做了一个小测试:

cd ~
mkdir test
cd test
touch -t 201101010000 OLD
touch NEW
cd ..
tar -N 2012-01-01 -cvf test.tar ./test/*
tar -tf test.tar
ls -o ./test/

显然 tar 似乎忽略了 -N、--newer 和 --after-date 选项。它已经归档了这两个文件,即使我命名为 OLD 的文件是在 2012 年之前使用时间戳创建的。

我该如何帮助自己解决这个问题?

【问题讨论】:

    标签: backup tar


    【解决方案1】:

    你的日期格式必须是

    tar --newer 20120408
    

    对于 2012 年 4 月 8 日之后更新的文件。没有“-”!

    或者你可以使用

    TWODAYSAGO=`(date --date '2 days ago' --rfc-3339=seconds)`
    tar -cz  --newer-mtime="${TWODAYSAGO}"  -f bakfile.tgz  /dir_to_backup
    

    【讨论】:

    • 我发现 --newer 的行为在不同版本的 tar 之间可能不一致(至少在 2018 年的今天)。根据我的经验,始终有效的是 --newer-mtime='2018-12-24 23:59:59'
    猜你喜欢
    • 2015-02-18
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多