Почему глобусы оболочки по умолчанию пропускают точечные файлы? [дубликат]

Редактировать /lib/systemd/system/atd.service в Ubuntu 16.04/systemd.

После добавления -l «load avg» к ExecStart:

$ cat /lib/systemd/system/atd.service 
[Unit]
Description=Deferred execution scheduler
Documentation=man:atd(8)

[Service]
ExecStart=/usr/sbin/atd -f -l 7.2
IgnoreSIGPIPE=false

[Install]
WantedBy=multi-user.targe

вы увидите сообщение при запуске systemctl status atd или (service atd status):

Предупреждение: atd.service изменен на диске. Запустите 'systemctl daemon-reload' для перезагрузки юнитов.

Выполнение этой команды избавляет от предупреждения, но для фактического принятия изменений службу необходимо перезапустить (service atd restart).

0
21.04.2017, 13:46
1 ответ

Именно так работает globbing, по умолчанию (в общем, не только в оболочках). Согласно странице glob(7):

Pathnames

[...]

Если имя файла начинается с '.', этот символ должен быть сопоставлен явно. (Таким образом, rm * не удалит .profile и tar c * не будут архивировать все ваши файлы; tar c . лучше.)

См. также соответствующий раздел POSIX.

Существуют настройки оболочки, которые вы можете использовать для изменения этого, или модификаторы globbing в некоторых оболочках, которые вы можете добавить, чтобы временно изменить поведение; см. Что такое настройка в bash для globbing, чтобы контролировать, соответствует ли * точечным файлам для получения более подробной информации.

6
28.01.2020, 02:15

Теги

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