У мене є дивна проблема із наступною командою:
# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.
команда не псевдоніми
# type chown
chown is hashed (/bin/chown)
Куди я можу заглянути далі?
У мене є дивна проблема із наступною командою:
# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.
команда не псевдоніми
# type chown
chown is hashed (/bin/chown)
Куди я можу заглянути далі?
Відповіді:
Оскільки розширення glob (ім'я шляху) виконується спочатку оболонкою перед chownзапуском, шаблон glob *розгортається спочатку до всіх файлів у поточному каталозі і chownотримує їх як його параметри та аргументи. У вас є файл у поточному каталозі, який починається -i, тому chownвін розглядає його як варіант, а не як аргумент (ім'я файлу).
Вам потрібно --вказати кінець варіантів для chown:
chown -R myuser:mygroup -- *
Або передуйте шаблону glob ( *), ./щоб явно вказати його як аргумент:
chown -R myuser:mygroup ./*
chown -R myuser:mygroup ./*вона розбиває його на chown, -R, myuser:mygroup, ./*а потім замінює модель Glob з відповідними доріжками файлової системи, наприклад. chown, -R, myuser:mygroup, ./-index.html, ./favicon.ico, ./My -ve Numbers. Оскільки Chown шукає лише, що перший персонаж є тире, коли шукає параметри arg, він припустить, що це позиційні arg.
Проблема полягала в назві файлу -index.phpв папці, тому Chown інтерпретував це як варіант командного рядка.
Для вирішення використовували подвійні дефіси chown -R myuser:mygroup -- *
chown -R myuser:mygroup ./*