将文件按周数压缩到每周存档中

将文件按周数压缩到每周存档中

我正在尝试将文件夹的每周存档分成单独的 zip 文件。

find . -name '*.txt' -ctime +7 -exec zip "archive-$("date+%Y-%U").zip" {} \;

我不知道该如何命名 zip 文件。如果有其他方法也可以。(比如使用 7z 或其他方法进行更好的压缩)

答案1

对于你的情况来说这应该足够了:

 find . -name '*.txt' -ctime +7 | zip archive-$(date +%Y%U).zip -@

例子:

find . -name '*.txt' -ctime +7 | zip archive-$(date +%Y%U).zip -@

输出:

  adding: a.txt (stored 0%)
  adding: b.txt (stored 0%)

现在确保命名:

 ls

输出为:

archive-201525.zip  a.txt  b.txt  c

答案2

第一个日期的格式为 YYYYMMDD,这是我命名备份的方式。第二个示例是周数 (%U),前导零如您所问。哎呀,必须转义这些反引号。

#!/bin/bash # Do 'man strftime' for more date format options. mydate=`date +"%Y%m%d"` basedir=/home/username/backups zipfile=$basedir/backup-$mydate.zip echo File name is $zipfile # Now get week number with %U. mydate=`date +"%U"` echo Mydate with week number is $mydate zipfile=$basedir/backup-$mydate.zip echo Zipfile is $zipfile

答案3

尝试这个脚本:

#!/bin/sh
   Case (find) in
     name="true"
     name="(name.zip)"
     find . -name '*.txt' -ctime +7 'name=("name of the file")' -exec zip "archive-$("date+%Y-%U").zip" {} \;
   endl

这样也许能很好地发挥作用。

相关内容