Ho uno strano problema con il seguente comando:
# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.
il comando non è alias
# type chown
chown is hashed (/bin/chown)
Dove posso guardare oltre?
Ho uno strano problema con il seguente comando:
# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.
il comando non è alias
# type chown
chown is hashed (/bin/chown)
Dove posso guardare oltre?
Risposte:
Man mano che l'espansione glob (nome percorso) viene eseguita per prima dalla shell prima delle chownesecuzioni, il modello glob *viene prima esteso a tutti i file nella directory corrente e li chownottiene come opzioni e argomenti. Hai un file nella directory corrente che inizia con -i, quindi chownlo considera come un'opzione, non come un argomento (nome file).
È necessario utilizzare --per indicare la fine delle opzioni per chown:
chown -R myuser:mygroup -- *
O precedere il modello glob ( *) con ./per indicarlo esplicitamente come argomento:
chown -R myuser:mygroup ./*
chown -R myuser:mygroup ./*, si divide in chown, -R, myuser:mygroup, ./*e quindi sostituisce modelli glob ai corrispondenti percorsi del file system, ad es. chown, -R, myuser:mygroup, ./-index.html, ./favicon.ico, ./My -ve Numbers. Dal momento che chown cerca solo il primo carattere che è un trattino quando cerca argomenti di opzione, presumerà che quelli siano argomenti di posizione.
Il problema era un file chiamato -index.phpnella cartella, quindi chown lo interpretava come un'opzione della riga di comando.
La soluzione stava usando i doppi trattini chown -R myuser:mygroup -- *
chown -R myuser:mygroup ./*