chown: неверная опция - 'i' Попробуйте 'chown --help' для получения дополнительной информации


15

У меня странная проблема со следующей командой:

# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.

команда не псевдонимы

# type chown
chown is hashed (/bin/chown)

Где я могу посмотреть дальше?


1
Вы могли бы попробоватьchown -R myuser:mygroup ./*
Крис

Ответы:


28

Поскольку расширение 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 ищет только первый символ, являющийся чертой, при поиске аргументов аргументов, он предполагает, что это позиционные аргументы.
Джим Дрисколл

7

Проблема заключалась в файле, названном -index.phpв папке, поэтому chown интерпретировал его как параметр командной строки.

Решение было с использованием двойных дефисов chown -R myuser:mygroup -- *


4
Разве это не тот же ответ, который уже дал @heemayl?
Крис

3
@Kris оба ответа были опубликованы почти в одно и то же время ;-)
Rinzwind

1
Вы запутали пользователя и группу в своем вопросе, но не в своем ответе ...
Томас

3
@ Kris Маловероятно, что он скопировал другой ответ в течение 39 секунд после его постановки.
UTF-8

извини, я не хотел это подразумевать.
Крис
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.