Con el comando 7z es muy sencillo.
Pon que tengo 6 archivos en una carpeta:
archivo1.txt archivo3.txt archivo5.txt
archivo2.txt archivo4.txt archivo6.txt
Creo el primer backup con los 3 primeros archivos:
7z a archivos.7z archivo1.txt archivo2.txt archivo3.txt
Ahora tengo en la carpeta:
archivo1.txt archivo3.txt archivo5.txt archivos.7z
archivo2.txt archivo4.txt archivo6.txt
Dentro de un mes quiero agregar los archivos 4 5 y 6:
7z a archivos.7z archivo4.txt archivo5.txt archivo6.txt
Sigo teniendo los mismos archivos en la carpeta, solo que ahora archivos.7z tiene dentro los 6 archivos comprimidos.
Para descomprimirlos:
mkdir archivosExtraidos
7z x archivos.7z -o"./archivosExtraidos"
Ya tienes los 6 archivos descomprimidos en la carpeta archivosExtraidos.
PD: En el manual de 7z tienen un aviso importante, que entiendo que también se aplica a winzip, winrar y desmás utilidades de compresióm que no están diseñadas explícitamente para copias de seguridad.
Backup and limitations
DO NOT USE the 7-zip format for backup purpose on Linux/Unix because :
- 7-zip does not store the owner/group of the file.
On Linux/Unix, in order to backup directories you must use tar :
- to backup a directory : tar cf - directory | 7za a -si
directory.tar.7z
- to restore your backup : 7za x -so directory.tar.7z | tar xf -
If you want to send files and directories (not the owner of file) to
others Unix/MacOS/Windows users, you can use the 7-zip format.
example : 7za a directory.7z directory
Do not use "-r" because this flag does not do what you think.
Do not use directory/* because of ".*" files (example : "directory/*"
does not match "directory/.profile")
Respaldos y límites
NO USES el formato 7z para respaldos en Linux/Unix porque :
- 7z no almacena el owner/group del archivo.
En Linux/Unix, para respaldar carpetas debes usar tar :
- para respaldar una carpeta : tar cf - carpeta | 7za a -si
carpeta.tar.7z
- para restaurar la carpeta : 7za x -so carpeta.tar.7z | tar xf -
Si quieres enviar archivos y carpetas (sin el owner del archivo) a otros usuarios Unix/MacOS/Windows, puedes usar el formato 7z.
ejemplo : 7za a carpeta.7z carpeta
No utilices "-r" porque este argumento no hace lo que piensas.
No utilices carpeta/* por los archivos ".*" (ejemplo: "carpeta/*" no encuentra
"carpeta/.profile")