Eu tenho um problema estranho com o seguinte comando:
# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.
o comando não é alias
# type chown
chown is hashed (/bin/chown)
Onde posso procurar mais?
command-line
chown
Marco Marsala
fonte
fonte
chown -R myuser:mygroup ./*
Respostas:
Como a expansão glob (nome do caminho) é feita primeiro pelo shell antes das
chown
execuções, o padrão glob*
é expandido para todos os arquivos no diretório atual primeiro e oschown
recebe como opções e argumentos. Você tem um arquivo no diretório atual que começa com-i
, portanto,chown
considera-o como uma opção, não como um argumento (nome do arquivo).Você precisa usar
--
para indicar o final das opções parachown
:Ou preceda o padrão glob (
*
) com./
para indicá-lo explicitamente como argumento:fonte
chown -R myuser:mygroup ./*
, que o divide emchown
,-R
,myuser:mygroup
,./*
e, em seguida, substitui padrões glob com os caminhos do sistema de arquivos correspondentes, por exemplo.chown
,-R
,myuser:mygroup
,./-index.html
,./favicon.ico
,./My -ve Numbers
. Como o chown procura apenas o primeiro caractere sendo um traço ao procurar opções args, presume-se que sejam args posicionais.O problema era um arquivo nomeado
-index.php
na pasta; portanto, o chown o interpretou como uma opção de linha de comando.A solução estava usando os hífens duplos
chown -R myuser:mygroup -- *
fonte