Шифрование внешнего жесткого диска, содержащего данные

Вот один способ:

$ files=( $(d=$(date +'%Y%m' -d '4 months ago'); 
          for f in *.pdf; do [[ "${f:0:6}" -le "$d" ]] && 
                             printf '%s\n' "$f"; done;) )
$ tar cvzf backup.tgz "${files[@]}"
20140201_004.pdf
20150201_003.pdf

Объяснение

  • d = $ (date + '% Y% m' -d '4 месяца назад') : установите переменную $ d на желаемую дату.
  • для f в * .pdf; делать ... ; done : перебрать все файлы .pdf в каталоге, сохраняя каждый как $ f .
  • [["$ {f: 0: 6}" -le "$ d"]] : проверьте, меньше ли первые 6 символов имени файла чем или равно значению $ d .
  • && printf '% s \ n' "$ f"; done; : если да, распечатайте имя файла.
  • files = ($ (...)) : сохраните вывод вышеуказанного в массиве $ files .

Обратите внимание, что это предполагает, что все имена ваших файлов pdf начинаются как минимум с 6 цифр, и в противном случае будет выдаваться жалоба. Вы можете сделать его более надежным, перебирая только те файлы PDF, которые:

for f in [0-9][0-9][0-9][0-9][0-9][0-9]*.pdf; do ...
4
13.09.2015, 17:49
0 ответов

Теги

Похожие вопросы