Введите список файлов и каталоги, которые будут скопированы с так же

Если у Вас есть пакеты с более новой версией (т.е. тестирующий), и Вы хотите понизить в пакете до стабильной версии, можно выполнить следующие команды pacman:

Обновите синхронизирующие базы данных:

# pacman -Syy

Понизьте все пакеты с более низкой версией в repos:

# pacman -Suu
2
24.01.2012, 14:14
1 ответ

Можно сделать цикл по каталогам, которых Вы хотите создать резервную копию. Отметьте использование переменной err отслеживать любую ошибку.

err=0
for d in ~/Documents ~/Pictures ~/Videos; do
  if [ -d "$d" ]; then
    ditto "$d" ~/BACKUP/"${d##*/}" || err=1
  else
    echo 1>&2 "Missing directory: $d"
    err=1
  fi
done
exit $err

С другой стороны, можно сделать функцию, которая обрабатывает один каталог и называет его многократно. Отметьте использование err снова.

backup () {
  if [ -d "$1" ]; then
    ditto "$1" "$2" || err=1
  else
    echo 1>&2 "Missing directory: $1"
    err=1
  fi
}
err=0
backup ~/Documents ~/BACKUPS/Documents
backup ~/Pictures ~/BACKUPS/Pictures
backup ~/Videos ~/BACKUPS/Videos
1
27.01.2020, 22:23
  • 1
    за обратную связь. Я вижу, как каждое изменение обладает своими преимуществами в зависимости от надлежащего использования. Быстрый вопрос о первом примере Вы, если, можно ли объяснить "##* /" после "$ {d"? Вы возражаете объяснять, во что переводят хеши, звездочки и наклонная черта?Спасибо. –  sardean 25.01.2012, 04:15
  • 2
    @DeanA.Vassallo ${VAR##PATTERN} $VAR минус самое долгое соответствие префикса PATTERN. Здесь ${d##*/} последний компонент каталога $d, т.е. Documents и так далее. –  Gilles 'SO- stop being evil' 25.01.2012, 04:20

Теги

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