Estoy buscando un comando tar que cumpla con los siguientes requisitos:
Quiero excluir todos los archivos que terminan en: backwpup y .zip (entre y antes puede haber cualquiera, por ejemplo, uploads/123backwpup-123.zip). Quiero excluir todas las carpetas en el área /media/backup/ & /application/cache/
Empiezo en un nivel que se parece a este:
- ejemplo.com
- ejemplo.de
- ejemplo.org
Con subdirectorios para cada uno:
- /etc/
- /httpdocs/
- /lib/
- ...
Sólo es necesario guardar el contenido de /httpdocs/.
Lo probé con el comando:
tar --exclude={"*backwpup*.zip", "*/media/backup/*", "*/application/cache/*"} -czvf backup.tar.gz **/httpdocs
Pero lamentablemente las copias de seguridad con la rutawp-content/uploads/backwpup-4578-backups/2022-10-31_12-22-31_IKXUCSLD01.ziptodavía están incluidos.
Respuesta1
Puedes intentar usar el siguiente comando tar:
tar --exclude='backwpup.zip' --exclude='/media/backup/' --exclude='/application/cache/' -czvf backup.tar.gz example.com/httpdocs example.de/httpdocs example.org/httpdocs
Este comando excluye todos los archivos que terminan en "backwpup" o ".zip", así como las carpetas en las ubicaciones especificadas. También incluye solo los subdirectorios "httpdocs" en cada directorio de dominio.
Respuesta2
¿Quizás de esta manera?
find * -type d \( -path '*/media/backup/*' -o -path '*/application/cache/*' \) -prune -o -path '*/httpdocs/*' -type f ! -name '*backwpup*.zip' -print0 | tar -czvf backup.tar.gz --null -T -
Respuesta3
Suponiendo que esté utilizando GNU tar, consulte la documentación sobre cómo excluir archivos:https://www.gnu.org/software/tar/manual/html_node/exclude.html Esto detalla la combinación de patrones:https://man7.org/linux/man-pages/man7/glob.7.html
Suponiendo que usa GNU BASH, puede recorrer los directorios usando un bucle for:https://www.gnu.org/software/bash/manual/html_node/Looping-Constructs.htmlusando la expansión del nombre de archivo (https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html)
Al final de esta página hay buenos ejemplos: https://linuxize.com/post/bash-for-loop/