如何使用 7zip 和命令行按修改日期选择某些文件并使用批处理文件自动执行?
答案1
好的。我使用 Robocopy 保留了一定年限或更久的数据,然后使用 7za 压缩并删除了临时文件。如下所示:
mkdir C:\Robocopy\Archive\Spool
mkdir C:\Robocopy\Archive\Spool\BackupLogs
mkdir C:\Robocopy\Archive\Spool\DRLogs
robocopy c:\Robocopy\Backup\BackupLogs\ C:\Robocopy\Archive\Spool\BackupLogs\ /move /minage:60
robocopy C:\Robocopy\Backup\DRLogs\ C:\Robocopy\Archive\Spool\DRLogs\ /move /minage:60
7za a c:\Robocopy\Archive\Archive.7z C:\Robocopy\Archive\Spool\
rmdir /S /Q C:\Robocopy\Archive\Spool
我在这里处理两组日志文件,一组是现场备份,一组是异地灾难恢复(DR)备份。
Robocopy 位于 Windows 资源工具包 (这是 Server 2003 版本) 并具有一些非常酷的功能。我在这里使用的是 /minage 参数,我使用它来指定将超过 60 天的日志文件移动(而不是复制)到 Spool 目录内的适当文件夹。然后我将 Spool 目录的内容压缩到第三个位置,最后删除 Spool 目录。
答案2
/path/to/your/folder
在 Linux 系统上,以下命令应将超过 7 天的文件压缩到archive.7z
文件中:
find /path/to/your/folder -mtime +7 -exec 7z a archive.7z {} \;
但它不会保留目录结构。类似的命令首先创建一个 tar 存档,然后使用它进行压缩,7z
应该可以完成这项工作:
$ find /path/to/your/folder -mtime +7 -exec tar cf archive.tar {} \;
$ 7z a archive.tar.7z archive.tar