【问题标题】:Create compressed archive with filename based on year and month of compressed files on linux system在linux系统上根据压缩文件的年份和月份创建文件名的压缩存档
【发布时间】:2021-02-03 09:10:43
【问题描述】:

我想压缩和归档(例如 zip 或 tar.gz)很多文件,这些文件都存储在 /folder 中。 它应该创建像 yyyy-mm-backup.zip 这样的存档文件,包括在该时间范围内修改的所有原始文件。

示例文件:

fileA.txt (modified date 2020-12-01)
fileB.txt (modified date 2020-12-02)
fileC.txt (modified date 2021-01-01)

应该创建存档文件:

2020-12-backup.zip (include fileA.txt and fileB.txt)
2021-01-backup.zip (include fileC.txt)

这可以通过单个 zip 或 tar 命令实现吗?还是我需要脚本或使用 logrotate?

【问题讨论】:

    标签: linux zip backup


    【解决方案1】:

    将 find 命令的输出重定向到 while 循环中

     while read line;
     do 
       dattim=${line%%/*};
       filpath=${line#*/};
       echo "zip -r $dattim-backup.zip $filpath";
       # zip -r "$dattim-backup.zip" "$filpath"
     done <<< "$(find /path/to/directory -name "*.txt" -printf "%TY-%Tm/%h/%f\n")"
    

    查找所有扩展名为 txt 的文件,并以“/”、前导目录、“/”和文件名列出的格式打印修改日期。通过 while 循环处理输出。将日期/时间戳提取到变量 dattim 中,将文件路径提取到变量 filpath 中。使用这些变量生成将文件添加到过时的 zip 文件的命令。

    验证 echo 是否按预期显示命令,然后删除注释标志以执行实际的 zip 命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 2015-05-04
      • 2011-04-17
      • 1970-01-01
      • 2013-10-28
      • 1970-01-01
      • 2010-09-05
      相关资源
      最近更新 更多