chown: opción no válida - 'i' Pruebe 'chown --help' para obtener más información

15

Tengo un problema extraño con el siguiente comando:

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

el comando no es alias

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

¿Dónde puedo mirar más lejos?

Marco Marsala
fuente
1
Puedes intentarlochown -R myuser:mygroup ./*
Kris

Respuestas:

28

Como la expansión glob (ruta) se realiza primero por el shell antes de las chownejecuciones, el patrón glob *se expande primero a todos los archivos en el directorio actual y los chownobtiene como sus opciones y argumentos. Tiene un archivo en el directorio actual que comienza con -i, por chownlo tanto, lo está considerando como una opción, no como un argumento (nombre de archivo).

Debe usar --para indicar el final de las opciones para chown:

chown -R myuser:mygroup -- *

O preceda el patrón glob ( *) con ./para indicarlo explícitamente como argumento:

chown -R myuser:mygroup ./*
heemayl
fuente
Prefijar con ./ no significa que sea un argumento (que significa nombre de archivo aquí), pero sí significa que ninguno de los nombres expandidos se verá como una opción (comenzando con "-"). Cuando la cáscara ve una línea como chown -R myuser:mygroup ./*, que la divide en chown, -R, myuser:mygroup, ./*y luego reemplaza patrones globales con las trayectorias del sistema de ficheros correspondientes, por ejemplo. chown, -R, myuser:mygroup, ./-index.html, ./favicon.ico, ./My -ve Numbers. Dado que chown solo busca que el primer personaje sea un guión al buscar args opcionales, se supondrá que esos son args posicionales.
Jim Driscoll
7

El problema era un archivo nombrado -index.phpen la carpeta, por lo que chown lo interpretó como una opción de línea de comando.

La solución estaba usando los guiones dobles chown -R myuser:mygroup -- *

Marco Marsala
fuente
44
¿No es esta la misma respuesta ya dada por @heemayl?
Kris
3
@Kris ambas respuestas se publicaron casi al mismo tiempo ;-)
Rinzwind
1
Usted ofuscó al usuario y al grupo en su pregunta pero no en su respuesta ...
Thomas
3
@Kris Es poco probable que haya copiado la otra respuesta dentro de los 39 segundos posteriores a su presentación.
UTF-8
lo siento, no quise decir eso.
Kris