1

我的项目结构如下:

-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

你有线索吗?

非常感谢

4

1 回答 1

1

是的,问题是即使目录为空,tar 仍将包含目录。它只是真正检查文件的 --newer 选项,而不是目录。将不得不编写一个小脚本或将 find 与 -cnewer 一起使用并将输出通过管道传输到 tar (在 tar 命令上使用 --no-recursion )。

使用您想要的时间戳创建一个文件

 touch -t 201307150000 timefile.txt

然后像:

find . -cnewer timefile.txt -print0 | xargs -0 tar --no-recursion -cf test.tar
于 2013-08-07T16:14:40.547 回答