Я пытаюсь взять еженедельный архив папки для разделения zip-файлов.
find . -name '*.txt' -ctime +7 -exec zip "archive-$("date+%Y-%U").zip" {} \;
Я застреваю о том, как назвать zip-файл. Любой альтернативный способ сделать это также приветствовалось бы. (как лучшее использование сжатия 7z или что-то еще)
Это должно быть достаточно для Вашего случая:
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
Первое свидание имеет формат 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
Попробуйте этот сценарий:
#!/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
и это могло бы хорошо работать этот путь.