У меня странная проблема со следующей командой:
# 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 (pathname) выполняется сначала оболочкой перед 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 ищет только первый символ, являющийся чертой, при поиске аргументов аргументов, он предполагает, что это позиционные аргументы.
Проблема заключалась в файле, названном -index.php
в папке, поэтому chown интерпретировал его как параметр командной строки.
Решение было с использованием двойных дефисов chown -R myuser:mygroup -- *
chown -R myuser:mygroup ./*