hay muchos métodos de compresión que funcionan recursivamente en la línea de comandos y es bueno saber quién es la audiencia final.
es decir, si se va a enviar a alguien que ejecuta Windows, probablemente lo mejor sea zip:
zip -r file.zip folder_to_zip
unzip filenname.zip
para otros usuarios de Linux o para ti mismo tar es genial
tar -cvzf filename.tar.gz folder
tar -cvjf filename.tar.bz2 folder # even more compression
#change the -c to -x to above to extract
Hay que tener cuidado con el alquitrán y cómo se alquitran/extraen las cosas, por ejemplo, si ejecuto
cd ~
tar -cvzf passwd.tar.gz /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd
pwd
/home/minombredeusuario
tar -xvzf passwd.tar.gz
esto creará/home/myusername/etc/passwd
no estoy seguro si todas las versiones de tar hacen esto:
Removing leading `/' from member names
La publicación de @amitchhajer funciona para GNU tar. Si alguien encuentra esta publicación y necesita que funcione en un NO GNU
sistema, pueden hacer esto:
tar cvf - folderToCompress | gzip > compressFileName
Para expandir el archivo:
zcat compressFileName | tar xvf -
tar -zcvf compressFileName.tar.gz folderToCompress
todo en folderToCompress irá a compressFileName
Editar:después de la revisión y los comentarios, me di cuenta de que las personas pueden confundirse con compressFileName sin una extensión. Si lo desea, puede usar la extensión .tar.gz (como se sugiere) con compressFileName