По умолчанию в 'yum list' без каких-либо опций будут перечислены все пакеты во всех репозиториях и все пакеты, установленные в вашей системе. Примечание. 'Yum list all' и 'yum list' дают одинаковый результат.
Это выглядит странно:
backup_`echo`mv "$i" "${i//"/"/_}``_`hostname`.`date +%m.%d.%Y`.tar.gz
Вы пытаетесь вложить mv
в эхо
здесь? Синтаксис $(...)
для подстановки команд упростил бы вложение:
backup_$(echo $(mv this that))_$(hostname)...
Но я все еще не вижу здесь никакого применения для mv
, не говоря уже о echo
, который будет просто повторять то, что выводит mv
, и не должен ничего выводить, если работает.
Мы можем просто исключить mv
и построить имя файла с ${var//\//_}
, что изменит все экземпляры /
в переменной с _
.
Возможно, что-то вроде этого для всего цикла:
for path in /var /usr/image /usr/image/temp ; do
x=$(path#/} # remove leading / if there is one
tarfile=backup_${x//\//_}_$(hostname)_$(date +%Y-%m-%d).tar.gz
tar -cvpzf "$tarfile" "$path"
done
Примечание. Я изменил формат даты с 05-17-2017
на 2017-05-17
, потому что последнее облегчает сортировку. Удаление ведущего /
является излишним, поскольку оно превратится в _
, что мы и так хотели, но я нахожу это несколько более структурированным.