Tengo una URL que conduce a un archivo tar de gran tamaño, alrededor de 200 GB, necesito extraer una carpeta de ese archivo en mi sistema Linux. Debido al gran tamaño del archivo, no quiero descargar el archivo completo a mi sistema Linux. Además, no tengo acceso shh al sistema fuente.
¿Hay alguna forma de extraer sólo una pequeña parte del archivo tar.gz?
Respuesta1
Para extraer solo un directorio en particular, necesita saber los nombres de archivo exactos. Los comodines no funcionan con tar. y el comando se verá así
curl -s -o - <URL>|tar xz /path/file1 /path/file2 ...
Respuesta2
El tar
formato no permite direccionar un archivo (o un directorio) directamente; esto se debe al hecho de quetmonoArkansasLas cebolletas fueron diseñadas para ser leídas secuencialmente desde un medio de respaldo.
Por supuesto, lo que puede hacer es detener el proceso después de que se hayan extraído las piezas relevantes. Harías algo parecido a
curl -o - 'http://your/url' | tar -xvz your_filter
Esto descargará el archivo desde el principio y extraerá las partes relevantes, una vez que tengas todo lo que necesitas, puedes detener el proceso para evitar descargar el resto.
Dependiendo del tipo de acceso que tengas al servidor de origen, es posible que incluso lo hagas mejor: ¿tienes PHP sin modo de guardar? En caso afirmativo, puede extraer lo que necesita a través de shell_exec
y amigos.