Estou tentando fazer backup da minha pasta pessoal em uma unidade externa com o seguinte comando:
rsync -acu --delete --exclude-from='/home/chh1/rsync_exclude.txt' /home/ /media/chh1/f86f92f7-bcb4-4b8e-8a64-8a210606d422/home_backup/
O arquivo --exclude-from=
/home/chh1/rsync_exclude.txt
contém as seguintes entradas:
.cache
crewdb.bak.sql
Eu realmente quero excluir .cache, mas também .dconf que está contido nele, pois quero excluir arquivos que requerem privilégios de root e dados .cache desnecessários contidos em /home/chh1/.cache.
Quando eu corro
find ~ -name ".cache"
Eu recebo a seguinte saída:
/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
Eu realmente quero excluir
/home/chh1/.cache
que cuidaria do dconf e do lixo geral do .cache também. No entanto, não quero excluir os outros diretórios .cache encontrados ao executar o comando find.
já que --exclude-from= corresponde apenas aos padrões com o que está no arquivo de exclusão, como posso especificar um caminho em vez de um padrão e, de preferência, dentro do arquivo de exclusão? Há algum caminho?
Obrigado pela sua ajuda, é realmente muito apreciada!
Responder1
Sua lista de exclusão também pode ter nomes absolutos, que correspondem ao diretório inicial, /home/
no seu caso. Use a linha
/chh1/.cache
em vez de .cache
apenas excluir /home/
/chh1/.cache
, ou seja/home/chh1/.cache