Estoy intentando hacer una copia de seguridad de mi carpeta de inicio en una unidad externa con el siguiente comando:
rsync -acu --delete --exclude-from='/home/chh1/rsync_exclude.txt' /home/ /media/chh1/f86f92f7-bcb4-4b8e-8a64-8a210606d422/home_backup/
El archivo --exclude-from=
/home/chh1/rsync_exclude.txt
contiene las siguientes entradas:
.cache
crewdb.bak.sql
Realmente quiero excluir .cache pero también .dconf que contiene, ya que quiero excluir archivos que requieren privilegios de root y datos .cache innecesarios contenidos en /home/chh1/.cache.
cuando corro
find ~ -name ".cache"
Obtengo el siguiente resultado:
/home/chh1/snap/pdfmixtool/common/.cache
/home/chh1/snap/gnome-system-monitor/common/.cache
/home/chh1/snap/okular/63/.cache
/home/chh1/snap/freemind/common/.cache
/home/chh1/.cache
find: ‘/home/chh1/.cache/dconf’: Permission denied
realmente quiero excluir
/home/chh1/.cache
lo que también se encargaría de dconf y de la basura general de .cache. Sin embargo, no quiero excluir los otros directorios .cache encontrados al ejecutar el comando de búsqueda.
Dado que --exclude-from= solo coincide con los patrones que están en el archivo de exclusión, ¿cómo puedo especificar una ruta en lugar de un patrón y preferiblemente dentro del archivo de exclusión? ¿Hay alguna manera?
¡Gracias por tu ayuda, realmente es muy apreciada!
Respuesta1
Su lista de exclusión también puede tener nombres absolutos, que coincidan debajo del directorio inicial, /home/
en su caso. usa la linea
/chh1/.cache
en lugar de .cache
solo excluir /home/
/chh1/.cache
, es decir/home/chh1/.cache