shell脚本-让所有文件修改后<Date>

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (34)

我不希望在PHP中这样做,所以我希望一个善于shell脚本的人能帮上忙。

我需要一个脚本,它递归地在目录中运行,并发现所有有最后修改日期的文件都大于某个日期。然后,它将tar和压缩文件保持路径信息。

提问于
用户回答回答于

简单到:

find . -mtime -1 | xargs tar --no-recursion -czf myfile.tgz

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

find . -mtime -1.5 | xargs tar --no-recursion -czf myfile.tgz
用户回答回答于

如果你有GNU find,那么就有一大批相关的选择:

  • -mmin n (修改时间以分钟为单位)
  • -mtime n (修改时间以天为单位)
  • -newer file (修改时间比文件修改时间更新)
  • -daystart (调整从当前时间到开始时间的开始时间)
  • 此外还有访问时间和“更改”或“创建”时间。

困难的部分是确定自一段时间以来的分钟数。

一个值得考虑的选择:用于touch创建一个具有所需修改时间戳的文件; 然后用find-newer

touch -t 200901031231.43 /tmp/wotsit
find . -newer /tmp/wotsit -print
rm -f /tmp/wotsit

扫码关注云+社区