3 votos

¿Por qué "tar -czh" produce un archivo corrupto pero "tar -ch | gzip" funciona bien?

Estoy tratando de hacer una copia de seguridad de un directorio de un teléfono a través de adb .

Al utilizar el siguiente comando obtengo un archivo que está corrupto:

adb exec-out "tar -czh /sdcard/DCIM" > backup.tar.gz

enter image description here

Pero con el siguiente comando el archivo es correcto:

adb exec-out "tar -ch /sdcard/DCIM | gzip" > backup.tar.gz

Los dos archivos tar tienen 48,8mB con una diferencia de unos 200kB. El archivo corrupto es más pequeño.

Estoy usando adb en la línea de comandos de Windows. Es necesario recibir la salida como datos comprimidos para evitar conversiones de nuevas líneas. Ambos comandos deben proporcionar datos comprimidos.

Mi pregunta es específicamente por qué estos dos comandos que deberían ser idénticos están produciendo un resultado diferente.

El teléfono ejecuta LineageOS 14.1 y está conectado a un ordenador con Windows 10.

1voto

alecxs Puntos 29

exec-out mezclado stdout y stderr

en el primer ejemplo, el alquitrán stderr mensaje "eliminar la '/' inicial de los nombres de los miembros" se redirige al archivo de destino

en el segundo ejemplo sólo el alquitrán stdout se canaliza a gzip

para evitar que se rompa el archivo en silencio stderr ver duplicado vinculado

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X