¿Utilizaste una ruta absoluta o relativa? Debe ser relativo, aparte de eso, se ve bien. ¿Cuánto tiempo lo dejaste correr y qué tan bueno es tu sistema? Tomará al menos varios minutos en una máquina rápida. ¿Potencialmente una hora o más? Estoy haciendo una prueba ahora.
Kevin
Sí, se completó después de ~ 1 hora, pero el camino absoluto estaba mal, estabas en lo correcto.
Garrett Hall
55
En Linux, se puede ver hasta qué punto en el archivo tares con cat /proc/$(pidof tar)/fdinfo/0(adaptar el comando si tiene más de una tarejecución de proceso).
Gilles
La parte importante tampoco es una barra inclinada final. Usar folder/folder2/no funcionará.
Marki555
Respuestas:
145
taralmacena rutas relativas por defecto . GNU tar incluso lo dice si intentas almacenar una ruta absoluta:
tar -cf foo.tar /home/foo
tar:Removing leading `/' from member names
Si necesita extraer una carpeta en particular, eche un vistazo a lo que hay en el archivo tar:
tar -tvf foo.tar
Y tenga en cuenta el nombre de archivo exacto. En el caso de mi foo.tararchivo, podría extraer /home/foo/bardiciendo:
tar -xvf foo.tar home/foo/bar # Note: no leading slash
Entonces, no, la forma en que publicaste no es (necesariamente) la forma correcta de hacerlo. Tienes que dejar de lado la barra diagonal. Si quieres simular rutas absolutas, hazlo cd /primero y asegúrate de ser el superusuario. Además, esto hace lo mismo:
tar -C /-xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
Hay razones muy obvias y buenas por las que tarconvierte rutas en rutas relativas. Una es la capacidad de restaurar un archivo en lugares distintos de su fuente original. El otro es la seguridad. Puede extraer un archivo, esperar que sus archivos aparezcan en su directorio de trabajo actual y, en su lugar, sobrescribir los archivos del sistema (o su propio trabajo) en otro lugar por error.
Nota: si se utiliza la -Popción, tarse archivar rutas absolutas. Por lo tanto, siempre vale la pena verificar el contenido de los archivos grandes antes de extraerlos.
--strip-components=NPuede ser útil para algunos aquí.
Acumenus
2
en mi caso era necesario escribir en ./foldername/lugar de foldername, supongo que fue porque cuando creé el alquitrán lo creé tar -cvf santi.tar ./*y cuando "enumeré" el alquitrán esto es lo que dijodrwxr-xr-x santi/santi 0 2016-04-11 09:42 ./foldername/
santiago arizti
1
Y alrededor .gz?
Peter Krauss el
1
@PeterKrauss cambia -xvfa -xzvf(agregando la -zopción) y obviamente foo.tara foo.tar.gzo como se llame su archivo. Lo mismo vale para -j(bz2) y en algunas versiones recientes, -J(xz). De lo contrario, una tubería como zcat foo.tar.gz | tar -xvf - …también funciona.
Alexios
Y recuerde, si está cansado de todos los resultados detallados durante la extracción, simplemente omita el ven todos los ejemplos. Por ejemplo, tar -tf foo.tary tar -xf foo.tar ....
tar
es concat /proc/$(pidof tar)/fdinfo/0
(adaptar el comando si tiene más de unatar
ejecución de proceso).folder/folder2/
no funcionará.Respuestas:
tar
almacena rutas relativas por defecto . GNU tar incluso lo dice si intentas almacenar una ruta absoluta:Si necesita extraer una carpeta en particular, eche un vistazo a lo que hay en el archivo tar:
Y tenga en cuenta el nombre de archivo exacto. En el caso de mi
foo.tar
archivo, podría extraer/home/foo/bar
diciendo:Entonces, no, la forma en que publicaste no es (necesariamente) la forma correcta de hacerlo. Tienes que dejar de lado la barra diagonal. Si quieres simular rutas absolutas, hazlo
cd /
primero y asegúrate de ser el superusuario. Además, esto hace lo mismo:Hay razones muy obvias y buenas por las que
tar
convierte rutas en rutas relativas. Una es la capacidad de restaurar un archivo en lugares distintos de su fuente original. El otro es la seguridad. Puede extraer un archivo, esperar que sus archivos aparezcan en su directorio de trabajo actual y, en su lugar, sobrescribir los archivos del sistema (o su propio trabajo) en otro lugar por error.Nota: si se utiliza la
-P
opción,tar
se archivar rutas absolutas. Por lo tanto, siempre vale la pena verificar el contenido de los archivos grandes antes de extraerlos.fuente
--strip-components=N
Puede ser útil para algunos aquí../foldername/
lugar defoldername
, supongo que fue porque cuando creé el alquitrán lo creétar -cvf santi.tar ./*
y cuando "enumeré" el alquitrán esto es lo que dijodrwxr-xr-x santi/santi 0 2016-04-11 09:42 ./foldername/
.gz
?-xvf
a-xzvf
(agregando la-z
opción) y obviamentefoo.tar
afoo.tar.gz
o como se llame su archivo. Lo mismo vale para-j
(bz2) y en algunas versiones recientes,-J
(xz). De lo contrario, una tubería comozcat foo.tar.gz | tar -xvf - …
también funciona.v
en todos los ejemplos. Por ejemplo,tar -tf foo.tar
ytar -xf foo.tar ...
.