tar исключить не работает в bash

Чтобы проверить часовой пояс вашей системы (у меня Европа/Берлин ), запустите

$ cat /etc/timezone
Europe/Berlin

Если это неправильно, запустите

sudo dpkg-reconfigure tzdata

и выберите America, затем Recifeи проверьте правильность напечатанного местного времени.

Вы также можете напечатать дату UTC с помощью

date -u

ваше местное время +3 часа.

0
08.11.2020, 09:42
1 ответ

В bash следует использовать массив:

cmd=(tar --exclude='*'.{db,log,token} -zcvf /home/pi/backup/2020.11.08-18.04.59.backup.tgz -P /home/pi/backup/test)

echo "${cmd[@]}"

=> tar --exclude=*.db --exclude=*.log --exclude=*.token...

"${cmd[@]}"
# etc

Пункт '*'выше предназначен для защиты от того, чтобы кто-то подложил файлы с именами вроде --exclude=foo.log, --exclude=bar.logв ваш текущий каталог, чтобы отключить вашу команду;-)

Обратите внимание, что это не имеет ничего общего с tar, а с вашей оболочкой (bash )и с тем, как она анализирует и расширяет свои командные строки; кроме того, ни массивы, ни раскрытия фигурных скобок, такие как {db,log,...}, не поддерживаются в других оболочках, таких как dash или busybox sh.

1
18.03.2021, 22:51

Теги

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