我的项目结构如下:
-sprint41
-file1
-file2
-sprint40
-file1
-file2
我想在20130715之后创建一个包含所有文件(+文件夹)的存档。 我的命令如下:
tar -cf test.tar --after-date 20130715 *
执行此命令后,test.tar包含以下内容:
-sprint41
-file1
-file2
-sprint40
即使修改日期在20130715之前,它仍保留sprint40文件夹
我希望有以下内容:
-sprint41
-file1
-file2
你有线索吗?
非常感谢
答案 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