Как использовать wilcards по команде chown?

637
e-info128

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

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

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

0
Какую ошибку вы получаете? jcbermu 8 лет назад 0
chown: нет доступа "/ opt / app / * / demo ': такого файла или каталога нет, но он существует. e-info128 8 лет назад 0
Нет `/ users` в сообщении об ошибке? choroba 8 лет назад 2
[root @ machine] # chown storage: storage_clientes_bitac -R "/ home / storage / storage / Empresa / * / Bitacoras" chown: нет доступа к puede a «/ home / storage / storage / Empresa / * / Bitacoras»: нет existe El Fichero O El Directorio e-info128 8 лет назад 0
У тебя есть разрешение? Может быть, вам нужно использовать `sudo` jcbermu 8 лет назад 0
используйте centos 6 и пользователя root. e-info128 8 лет назад 0
Удалите двойные кавычки в пути к каталогу `chown storage: storage_clientes_bitac -R / home / storage / storage / Empresa / * / Bitacoras` jcbermu 8 лет назад 2

2 ответа на вопрос

0
infixed

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

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

find /opt/app/users/ -name demo -exec chown app:demo \{\} \; 
нужно / opt / app / users / * / demo / но нет / opt / app / users / * / demo2 / demo e-info128 8 лет назад 0
О, только один слой в глубину? попробуйте `find / opt / app / users / -maxdepth 1 -type d -name demo -exec echo \ {\} found \;`, чтобы проверить, работает ли это. Если он находит правильные каталоги, измените echo на команду chown infixed 8 лет назад 0
Я не там, где я могу попробовать это. Может быть, вам нужно `-maxdepth 2`. infixed 8 лет назад 0
0
Dmitry Grigoryev

You have enclosed your pattern in "double quotes", which prevent filename expansion (also called globbing):

Double quotes: "..." prevents some substitutions but allows others. Every substitution that begins with a dollar sign $ is performed, as is the legacy ... (backtick) command substitution. Backslash escaping is also performed. No word splitting or filename expansion is performed.

The solution is obviously to run your command without the quotes, like jcbermu pointed out:

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


One important thing you should remember is to post commands and error messages verbatim when asking questions. Not everyone here likes guessing games.