Arquivar os arquivos no arquivo semanal com o número da semana

0

Estou tentando fazer um arquivo semanal de uma pasta para separar arquivos zip.

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

Estou preso em como nomear o arquivo zip. Qualquer forma alternativa de fazer isso também seria bem-vinda. (como melhor compressão usando 7z ou outra coisa)

    
por Sunil J 22.06.2015 / 11:09

3 respostas

3

Isso deve ser suficiente para o seu caso:

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

exemplo:

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

saída:

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

Agora, certifique-se de nomear:

 ls

saída é:

archive-201525.zip  a.txt  b.txt  c
    
por Maythux 22.06.2015 / 11:19
0

A primeira data tem um formato de AAAAMMDD, que é como eu nomeio meus backups. O segundo exemplo é o número da semana (% U) com o zero inicial, como você pediu. Oops, tenho que escapar desses backquotes.

#!/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

    
por Bulrush 23.06.2015 / 13:12
-1

Experimente este script:

#!/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

e pode funcionar bem assim.

    
por Michael 22.06.2015 / 11:24