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?
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?
Respostas:
Como a expansão glob (nome do caminho) é feita primeiro pelo shell antes das chownexecuções, o padrão glob *é expandido para todos os arquivos no diretório atual primeiro e os chownrecebe como opções e argumentos. Você tem um arquivo no diretório atual que começa com -i, portanto, chownconsidera-o como uma opção, não como um argumento (nome do arquivo).
Você precisa usar --para indicar o final das opções para chown:
chown -R myuser:mygroup -- *
Ou preceda o padrão glob ( *) com ./para indicá-lo explicitamente como argumento:
chown -R myuser:mygroup ./*
chown -R myuser:mygroup ./*, que o divide em chown, -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.phpna 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 -- *
chown -R myuser:mygroup ./*