我不想用PHP来做这件事,所以我希望一个擅长shell脚本的人能帮上忙。
我需要一个脚本,通过目录递归运行,并找到所有文件的最后修改日期是大于一些日期。然后,它将压缩并压缩保存路径信息的文件。
发布于 2009-05-11 14:28:33
就像这样简单:
find . -mtime -1 | xargs tar --no-recursion -czf myfile.tgz
其中find . -mtime -1
将(递归地)选择前一天修改的当前目录中的所有文件。您可以使用分数,例如:
find . -mtime -1.5 | xargs tar --no-recursion -czf myfile.tgz
发布于 2014-02-24 08:22:08
您可以直接使用tar来完成此操作,甚至更好:
tar -N '2014-02-01 18:00:00' -jcvf archive.tar.bz2 files
这指示tar压缩比2014年1月1日18:00:00更新的文件。
发布于 2009-05-11 15:21:43
这将适用于某些数量的文件。您希望包含"-print0“和"xargs -0”,以防任何路径中有空格。此示例查找在过去7天内修改的文件。要查找在过去7天之前修改过的内容,请使用"+7“。
find . -mtime -7 -print0 | xargs -0 tar -cjf /foo/archive.tar.bz2
正如this page警告的那样,如果有很多参数,xargs可能会导致tar命令多次执行,而"-c“标志可能会导致问题。在这种情况下,您可能希望这样:
find . -mtime -7 -print0 | xargs -0 tar -rf /foo/archive.tar
您不能使用tar更新压缩的tar存档,因此您必须在第二步中对其进行bzip2或gzip压缩。
https://stackoverflow.com/questions/848293
复制相似问题