У меня странная проблема со следующей командой:
# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.
команда не псевдонимы
# type chown
chown is hashed (/bin/chown)
Где я могу посмотреть дальше?
command-line
chown
Марко Марсала
источник
источник
chown -R myuser:mygroup ./*
Ответы:
Поскольку расширение glob (pathname) выполняется сначала оболочкой перед
chown
запуском, шаблон glob*
сначала распространяется на все файлы в текущем каталоге иchown
получает их в качестве параметров и аргументов. У вас есть файл в текущем каталоге, который начинается с-i
, поэтомуchown
рассматривает его как параметр, а не как аргумент (имя файла).Вы должны использовать,
--
чтобы указать конец вариантов дляchown
:Или перед шаблоном glob (
*
)./
явно указать его в качестве аргумента:источник
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 -- *
источник