Tar和--newer / - after-date参数

时间:2013-08-07 16:03:47

标签: windows shell tar

我的项目结构如下:

-sprint41
 -file1
 -file2
-sprint40
 -file1
 -file2
  • sprint41文件夹中的所有文件(+ sprint41)都具有修改日期20130807
  • sprint40文件夹中的所有文件(+ sprint40)都有修改日期 20130610

我想在20130715之后创建一个包含所有文件(+文件夹)的存档。 我的命令如下:

tar -cf test.tar --after-date 20130715 *

执行此命令后,test.tar包含以下内容:

-sprint41
 -file1
 -file2
-sprint40

即使修改日期在20130715之前,它仍保留sprint40文件夹

我希望有以下内容:

-sprint41
 -file1
 -file2

你有线索吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

是的,问题是tar仍会包含目录,即使它们是空的。它只是真正检查文件上的--newer选项,而不是目录。必须编写一个小脚本或使用find with -cnewer并将输出传递给tar(在tar命令中使用--no-recursion)。

使用

创建一个包含所需时间戳的文件
 touch -t 201307150000 timefile.txt

然后就像:

find . -cnewer timefile.txt -print0 | xargs -0 tar --no-recursion -cf test.tar