Comprimir una carpeta con tar?

268

Estoy tratando de comprimir una carpeta ( /var/www/) ~/www_backups/$time.tardonde $timeestá la fecha actual.

Esto es lo que tengo:

cd /var/www && sudo tar -czf ~/www_backups $time"

Estoy completamente perdido y llevo horas haciendo esto. No estoy seguro si -czfes correcto. Simplemente quiero copiar todo el contenido en /var/wwwun $time.tararchivo, y quiero mantener los permisos de todos los archivos. ¿Puede alguien ayudarme?

QWERTY
fuente
necesita una "en el otro lado de la $timetambién.
gauteh

Respuestas:

373

Para tary gzipuna carpeta, la sintaxis es:

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar

El -es opcional. Si desea acceder al tardirectorio actual, úselo .para designarlo.

Para construir su nombre de archivo, use la dateutilidad (mire en su página de manual las opciones de formato disponibles). Por ejemplo:

cd /var/www && sudo tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz .

Esto habría creado un archivo llamado algo así 20120902-185558.tar.gz.

En Linux, es probable que tartambién admita la compresión BZip2 con la opción en jlugar de la zopción. Y posiblemente otros. Consulte la página del manual en su sistema local.

Estera
fuente
1
Esto es perfecto, gracias. Sin embargo, tengo un pequeño problema. Después de crear un archivo tar de / var / www, se coloca dentro de los directorios / var / www en el archivo tar. Aquí está el código que estoy usando ahora sudo tar -czf ~/www_backups/$time.tar /var/www/"Imagine que tengo un archivo llamado test.txt dentro de / var / www. Después de hacer una copia tar del archivo, cuando lo extraiga se colocará dentro de los directorios / var / www. ¿Tiene sentido? Espero que sí, un poco difícil de explicar. Comprobaré la compatibilidad con BZip2, ¡gracias por la sugerencia!
qwerty
1
Es por eso que primero va cdal directorio que desea empaquetar, luego tar cf file.tar ., eso último en .lugar de especificar la ruta completa hará que las rutas dentro del archivo estén relacionadas con el directorio actual. También puede usar la -Copción para tar (consulte la página de manual).
Mat
1
Sí, eso funcionó mucho mejor. Muchas gracias, lo aprecio!
qwerty
3
@Qwertylicious -f(de la página del manual)Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
Kolob Canyon
1
sudoestaba en la pregunta, no cambió ni cuestionó eso. Sin embargo, tener el directorio de destino de respaldo restringido a root no es una mala idea.
Mat