Tar, исключающий все файлы, а не только скрытые папки

Tinc должен обновляться как блок systemd, а не посылать прямые сигналы. Для этого необходимо настроить свои файлы юнитов на цепочку с соответствующими строками Require=, Before= и After= в разделе [Unit]. Также убедитесь, что вы установили правильное значение WantedBy= для сетевых служб. (т.е. WantedBy= { network.target, network-online.target, network-pre.target } вместо multi-user.target)

Это позволяет выполнить systemctl restart systemd-networkd.service для перезапуска сети. В сочетании с systemd-resolvd, udev/dbus (плюс wpa_supplicant@nic.service при работе с wifi) сеть просто работает.

Обязательно прочитайте статьи о переходе на systemd-networkd и зависимости юнитов. Это также способ посылать сигналы вашим systemd. service с помощью команды systemctl kill, как описано в systemd for administartors guide

0
27.04.2018, 02:09
4 ответа

Проблема заключается в использовании .в качестве источника в сочетании с указанием tar исключить элементы, начинающиеся с .. Попробуйте использовать абсолютный путь, например /home/userили "$PWD", если вы уже находитесь в каталоге, и он должен работать нормально.

0
28.01.2020, 02:43

Лучшее решение — создать файл с оскорбительными именами и пойти:

tar cf my-precious.tar -X file-of-offenders.

(Не знаю, является ли -X GNU-измом... но вы, похоже, все равно используете GNU tar ).

0
28.01.2020, 02:43

У меня те же проблемы, --exclude='. *' отлично работает в MacOS, но не в Linux. Вы можете сделать,

tar -vcf everything.tar. --exclude='./.*' --exclude='test_tree'

Или

tar -vcf everything.tar. --exclude='.[^/]*' --exclude='test_tree'

1
28.01.2020, 02:43

Чтобы сопоставить "скрытые файлы" с использованием шаблона стиля оболочки -, используйте .[^.]*.

Использование .*соответствует специальной записи каталога .(, а также..). Обычно это не то, что вы хотите.

0
28.01.2020, 02:43

Теги

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