有什么方法可以解压并仅提取超过某个日期的文件(包括目录结构)?
我恢复了游戏服务器上的备份,但备份已经是几天前了。但是我有一个更新且健康的整个结构的 tar 存档,所以现在我想根据文件的日期过滤器提取所有文件(包括目录结构),如果可能的话?
答案1
如果您不知道如何使用 tar,可以尝试 pax,您可以将其视为 tar(和 cpio)的现代版本。它可以完成 tar 的大部分功能(至少在不涉及磁带驱动器的情况下),并且其语法不会受到数十年繁琐的困扰。
具体来说,pax 提供了一个-T [from_date][,to_date]
选项,因此您可以执行类似以下操作:pax <backup.tar -r -pe -T 1006150000
仅提取日期为 6 月 15 日或更新的文件。或者,pax <backup.tar -r -pe -u
将避免提取存档中的版本比提取目录中的版本旧的文件。
Pax 通常不是默认安装的,但所有 Linux 发行版都应该有它。它由 Single Unix 指定,因此它应该在所有 unix 系统和 unixy 环境(如 Cygwin)上可用。
最后,如果您想要真正精细的控制,您可以将文件提取到另一个位置并使用的rsync
高级功能,或者find
微调您想要复制的内容(也许使用pax -rw -pe
...)
答案2
有一个--after-date
选项和一个--newer-mtime
选项,
但是,我记得使用它们进行存档,而不是提取。