tar -tf filename.tar
folder1/file
folder1/name
[...]
Me gustaría extraer el archivo y el nombre de la carpeta2 . ¿Se puede hacer esto de una sola vez?
Uso -Cy --strip-components(Ver man tar).
mkdir FOLDER
# for remote tar file
curl -L ’remote_tar_file' | tar -xz - -C FOLDER --strip-components=1
# for local tar file
tar -xzf FILENAME -C FOLDER --strip-components=1
La -Cbandera asume que un directorio ya está en su lugar, por lo que el contenido del archivo tar puede expandirse en él. de ahí el mkdir FOLDER.
La --strip-componentsbandera se usa cuando un archivo tar naturalmente se expandiría en una carpeta, digamos, como github, donde se muestra como una repo-name-mastercarpeta. Por supuesto, no necesitaría la carpeta de primer nivel generada aquí, por lo que --strip-componentsconfigurarla 1eliminaría automáticamente esa primera carpeta por usted. Cuanto mayor sea el número, más carpetas anidadas se eliminarán.
man tar. No lo vi--strip-components. agradableTambién puede usar la
--transformopción para un poco más de flexibilidad. Acepta cualquier operación de reemplazo de sed.Por ejemplo, así es como extraigo un tarball de Linux a un nuevo directorio para poder aplicar un parche:
fuente