Мне нужно использовать подстановочные знаки по команде chown. Пример:

# chown app:demo /opt/app/users/*/demo

Я получаю следующую ошибку:

chown: can not access "/opt/app/users/*/demo" ': No such file or directory

Но не работает. Что я могу сделать?

2 ответа2

1

Вы заключили свой шаблон в "double quotes" , которые предотвращают расширение имени файла (также называемое « подстановкой»):

Двойные кавычки: «...» запрещает некоторые замены, но разрешает другие. Выполняется каждая подстановка, которая начинается со знака доллара $, как и подстановка старой команды ... (backtick). Экранирование обратной косой черты также выполняется. Нет разделения слов или расширения имени файла.

Очевидно, что решение состоит в том, чтобы запустить вашу команду без кавычек, как указал jcbermu:

chown storage:storage_clientes_bitac -R /home/storage/storage/Empresa/*/Bitacoras


Одна важная вещь, которую вы должны помнить, это публиковать команды и сообщения об ошибках дословно, задавая вопросы. Не всем здесь нравятся игры в догадки.
0

Подстановочные знаки часто проблематичны, когда не в базовом имени

Вы могли бы сделать это

find /opt/app/users/ -name demo -exec chown app:demo \{\} \;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .