Estoy tratando de crear el archivo tar.gz usando el siguiente comando:
sudo tar -vcfz dvr_rdk_v1.tar.gz dvr_rdk/
Luego comienza a crear archivos (muchos archivos en la carpeta), pero luego aparece el siguiente error:
tar: dvr_rdk_v1.tar.gz: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
No veo ninguna descripción de este error, ¿qué significa?
-
hace la diferencia, porque el alquitrán GNU es peculiar. Los argumentos de opción no se pueden agrupar en el primer argumento cuando no comienza con a-
, por lo que el argumento af
es el siguiente argumento ytar
, portar vcfz dvr_rdk_v1.tar.gz
lo tanto, es equivalente atar -v -c -f dvr_rdk_v1.tar.gz -z
.z
oj
la compresión del archivo es exitosa incluso con los-
involucrados. Cuando agrego el guión está incluido, trata el último carácter de la opción como un "archivo". Como resultado, obtengoj
oz
como un archivo archivado si uso esta opción-cvfz
o-cvfj
.La
-f
opción debe preceder directamente al nombre del archivo. Entonces, use entar -vczf filename.tar.gz
lugar de-vcfz
fuente
j
oz
con estos comandos-cvfj
y-cvfz
respectivamente.El comando tar históricamente ha sido uno de los pocos comandos que no sigue el Unix directrices de utilidad sintaxis .
La página de estándares para alquitrán dice:
Si bien las pautas de sintaxis incluyen esto:
Entonces, si bien el comando que escribió,
tar -vcfz dvr_rdk_v1.tar.gz dvr_rdk/
estaría bien en versiones anteriores de tar, ciertas versiones de tar que están escritas para seguir estrictamente las pautas de sintaxis de utilidad analizarán esto como "usarz
como argumento de archivo para-f
". Por lo tanto, debe usar lo siguiente para ser portátil:fuente
Para crear el archivo
Esto muestra la lista de archivos y carpetas
Y extraer de nuevo
fuente
tar
.tar
mal, aunque es bueno al menos mencionar cuál es la diferencia clave (pasar-f
al final)z
que ponerf
al final, de ahí mi comentario.