首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Shell脚本-获取在<date>之后修改的所有文件

Shell脚本-获取在<date>之后修改的所有文件
EN

Stack Overflow用户
提问于 2009-05-11 14:10:03
回答 8查看 223K关注 0票数 137

我不想用PHP来做这件事,所以我希望一个擅长shell脚本的人能帮上忙。

我需要一个脚本,通过目录递归运行,并找到所有文件的最后修改日期是大于一些日期。然后,它将压缩并压缩保存路径信息的文件。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-05-11 14:28:33

就像这样简单:

代码语言:javascript
复制
find . -mtime -1 | xargs tar --no-recursion -czf myfile.tgz

其中find . -mtime -1将(递归地)选择前一天修改的当前目录中的所有文件。您可以使用分数,例如:

代码语言:javascript
复制
find . -mtime -1.5 | xargs tar --no-recursion -czf myfile.tgz
票数 142
EN

Stack Overflow用户

发布于 2014-02-24 08:22:08

您可以直接使用tar来完成此操作,甚至更好:

代码语言:javascript
复制
tar -N '2014-02-01 18:00:00' -jcvf archive.tar.bz2 files

这指示tar压缩比2014年1月1日18:00:00更新的文件。

票数 35
EN

Stack Overflow用户

发布于 2009-05-11 15:21:43

这将适用于某些数量的文件。您希望包含"-print0“和"xargs -0”,以防任何路径中有空格。此示例查找在过去7天内修改的文件。要查找在过去7天之前修改过的内容,请使用"+7“。

代码语言:javascript
复制
find . -mtime -7 -print0 | xargs -0 tar -cjf /foo/archive.tar.bz2

正如this page警告的那样,如果有很多参数,xargs可能会导致tar命令多次执行,而"-c“标志可能会导致问题。在这种情况下,您可能希望这样:

代码语言:javascript
复制
find . -mtime -7 -print0 | xargs -0 tar -rf /foo/archive.tar

您不能使用tar更新压缩的tar存档,因此您必须在第二步中对其进行bzip2或gzip压缩。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/848293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档