скрипт для сжатия нескольких файлов

У меня есть скрипт, который создает резервную копию, находит файлы старше 30 дней и сжимает их. Теперь проблема, с которой я сталкиваюсь, заключается в том, что если файлов больше одного, как я могу отредактировать скрипт, чтобы он также сжимал все эти файлы. Ниже приведена функция поиска, которую я использую. Пожалуйста, помогите.

Time=+30
PATH_TO_DUMP=/home/tarun/Desktop/Backup

#Find any Backup File defined by the time constraint
file="$(find $PATH_TO_DUMP -type f -mtime $Time)"

#To verify if $file is empty or has some value
if [ ! -n "$file" ]; then
echo "No Earlier Backups were found to compress" >> $PATH_TO_LOG
else
echo "Earlier Backups $file will be compressed" >> $PATH_TO_LOG
gzip $file
fi
1
задан 28 June 2013 в 14:41

2 ответа

Вы можете сделать это с небольшой модификацией

(направьте вывод find в , в то время как цикл выполняет чтение )

Time=+30
PATH_TO_DUMP=/home/tarun/Desktop/Backup
#Find any Backup File defined by the time constraint

find $PATH_TO_DUMP -type f -mtime $Time | while read file
do

  #To verify if $file is empty or has some value
  if [ ! -n "$file" ]; then
    echo "No Earlier Backups were found to compress" >> $PATH_TO_LOG
  else
    echo "Earlier Backups $file will be compressed" >> $PATH_TO_LOG
    gzip "$file"
  fi

done
0
ответ дан 28 June 2013 в 14:41

Сжать весь файл с помощью tar вместо gzip:

tar jcvf new_file.tar.bz2 $file

tar сохраняет файл
-j до bzip tarred файл (используется -z gzip)
-c для создания (-x для извлечения)
-v подробный
-f файл для создания (или открытия) [ 1118]

Извлечь:

tar jxvf new_file.tar.bz2

В противном случае, если вы хотите архив для каждого файла:

echo $file | xargs gzip

xargs читает элементы из стандартного ввода, разделенные пробелами (которые может быть защищен двойными или одинарными кавычками или обратной косой чертой) или символами новой строки и выполняет команду (по умолчанию / bin / echo) один или несколько раз с любыми начальными аргументами, за которыми следуют элементы, считанные из стандартного ввода.

0
ответ дан 28 June 2013 в 14:41

Другие вопросы по тегам:

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