tar -xvfz foo.tar.gz
devuelve un error tar: z: Cannot open: No such file or directory
Esto es completamente comprensible: el f
conmutador espera un nombre de archivo, por lo que debe ser el último.
Sin embargo, omitir el guión tar xvfz foot.tar.gz
funciona y descomprime y descomprime el archivo.
He probado esto en OS X 10.8 y Ubuntu 12.04.
Alguna idea de por qué?
[editado para agregar]
Yo siempre uso tar -zxvf foo.tar.gz
. Sin embargo, esta pregunta ha surgido debido a este xkcd , y mi sorpresa cuando alguien insistió en que tar xvfz
funcionaría.
Respuestas:
tar tiene 3 tipos de sintaxis (de acuerdo con esto ):
Para la sintaxis de la opción anterior, todas las letras deben seguir "tar" y deben caer en un solo grupo sin espacios. El orden de las letras realmente no importa, siempre y cuando los argumentos de esas letras sigan el mismo orden después del conjunto de opciones.
Esta antigua forma de escribir opciones de alquitrán puede sorprender incluso a los usuarios experimentados. Por ejemplo, los dos comandos:
son bastante diferentes El primer ejemplo usa 'archive.tar.gz' como valor para la opción 'f' y reconoce la opción 'z'. Sin embargo, el segundo ejemplo usa 'z' como el valor para la opción 'f', probablemente no lo que se pretendía.
Las opciones antiguas se mantienen para compatibilidad con versiones antiguas de tar.
El comando con un '-' es equivalente a
Esa es la razón por la que su ejemplo funciona sin un "-" y no con "-"
fuente