¿Cómo puedo usar el comando tar para agrupar archivos sin compresión?


60

Tengo una carpeta muy grande de más de 120,000 archivos. y necesito moverlos a otra ubicación en mi misma máquina (misma partición).

Me gustaría usar el tarcomando para agruparlos como una sola unidad y luego mva la ubicación final.

¿Qué comando necesito para ejecutarlos tartodos juntos y no comprimir nada (necesito el resultado más rápido)?


1
¿Por qué usar tar, y no solo mv (1) los archivos? ¿O usa cp (1) si no quiere perder los originales?
vonbrand

@vonbrand uno puede querer sincronizar a través de la red un único archivo continuo. mucho más rápido que rsyncing 120k archivos más pequeños. es la diferencia entre la velocidad máxima constante a máximos y mínimos
mwm

Respuestas:


85

tar no se comprime de manera predeterminada, simplemente no agregue una opción de compresión:

tar cvf myfolder.tar myfolder

Estoy incluyendo Hennes' comentario en mi respuesta, ya que añade información útil:

TAR (archivo de cinta) es originalmente un programa de Unix utilizado para crear archivos en cinta. Dado que todos los dispositivos se tratan como archivos en Unix, es fácil no escribir en una cinta sino en un archivo. Esto generalmente se hace con la bandera -f. El medio myfolder.tar myfolder comando tar cvf alquitrán, c reate, v erbose f ile filename_to_create what_to_tar. No hay compresión en esto en ninguna parte. Los archivos de alquitrán (como archivos) se comprimieron a menudo utilizando el programa de compresión y obtuvieron la extensión .Z (por ejemplo, file.tar.Z). Más tarde, esto se incluyó en gtar con la bandera z


¿Eso agregará recursivamente todas las subcarpetas y archivos en el tar?
sergserg

2
@Serg sí, lo hará.
terdon el

1
Gracias. Por lo general, trato de responder en forma corta y larga. Como en "sí / no, [no] funcionará" para el breve, y una explicación de por qué como la respuesta más larga. Tener los antecedentes de por qué a menudo ayuda en el futuro.
Hennes

@Serg, ya que no siempre es el caso de que un manual o instrucciones sean tan buenas que aclaren las cosas de inmediato al leerlas, a veces la mejor manera es seguir adelante y probar el comando de todos modos, luego verás lo que hace, y una vez que sepa lo que hace o tenga una buena idea, ¡el manual puede confirmarlo por usted! es fácil probar el alquitrán en un pequeño conjunto de archivos de ejemplo, con ejemplos de cómo usarlo, sin tener que hacer la cabeza o la cola del manual.
barlop

Tenga en cuenta que si desea obtener los resultados más rápidos, debe omitir el indicador "v" para silenciar la salida. En mi caso, esto redujo el tiempo de comando de 16 segundos a 6 segundos al ejecutarlo en una instancia de AWS t2.medium.
David Backeus

6

La respuesta de @terdon es correcta.

Pero cometí un pequeño error al hacer tar cvf myfolder.tar.gz myfolder. Quería los mismos nombres finales para los archivos en la misma ruta, tar.gzincluso cuando no está comprimido.

Por lo tanto, si coloca algo como .gz, .zal final del nombre de archivo que está tratando de tar, la aplicación tar entenderá que desea usar algo de compresión, y se aplicará en consecuencia a lo que pones (gz = gzip).

Entonces, si desea usar una extensión como esa tar.gz, asegúrese de usar la bandera--no-auto-compress

--no-auto-compress    do not use archive suffix to determine the compression 
program
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.