Moderator: Stolz


Code: Select all
#!/bin/bash
ARCHIVOS=`/bin/tar -tf $1`
for ARCHIVO in $ARCHIVOS
do
tar -xf $1 $ARCHIVO
tar -f $1 --delete $ARCHIVO
done
Code: Select all
tar -tf pepe.tar | while read file; do tar -xf pepe.tar "$file" && tar -f pepe.tar --delete "$file"; done

Code: Select all
tar: <AQUÍ VA EL ARCHIVO>: No se encuentra en el archivo
tar: Salida con error demorada desde errores anterioresSip, esos avisos los da, no se muy bien por qué ni si esconden algún significado maligno. Lo cierto es que he probado y parece funcionar bien, pero claro, tampoco me he parado a comprobarlo. Una forma fácil de probar sería meter en un tar una jerarquía de directorios con varios ficheros, luego extraerlos en otro sitio distinto con el método de arriba, y luego hacer un diff para comprobar si son iguales. Si es así, podemos asumir que esto es más o menos fiableJuanSimpson wrote:si que funciona, modifique lo que escribí de tal forma para comprobar que funcionara y pasa algo extraño hay unos mensajes de error de este tipo:Muy buena idea lo del && y mi problema era con los nombres de archivo con espacios, los tomaba como dos archivos, usar read y comillas lo solucionó.Code: Select all
tar: <AQUÍ VA EL ARCHIVO>: No se encuentra en el archivo tar: Salida con error demorada desde errores anteriores
