焦油是否忽略了 --之后日期选项



我想用tar做一个增量备份。我已经在2012-04-08进行了完整备份,后来我想备份在该日期之后创建或更改的所有文件。

所以我做了这样的事情:

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、--new 和 ---after-date 选项。它已经存档了这两个文件,即使我命名为 OLD 的文件是在 2012 年之前创建的时间戳。

我该如何帮助自己呢?

您的日期格式必须是

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

最新更新