Estou tentando fazer backup de alguns arquivos em outra unidade usando rsync
.
Como caso de teste, estou tentando o seguinte comando:
rsync -Rav --delete --stats /home/my_user/bin* "$dest"
Este comando irá copiar arquivos e diretórios (com seus conteúdos) presentes no meu $HOME
diretório e com nomes como ~/bin
, ~/binb
, ~/bin1
, ~/bin2
, etc. para o destino.
No entanto, quando apago algum dos arquivos ou diretórios chamados ~/bin1
ou ~/bin2
por exemplo, estes não são apagados no destino também. A única coisa que funciona é quando há um arquivo em um diretório, digamos, ~/bin2/file1
e esse arquivo é excluído, então esse arquivo também é excluído no destino (mas não no caso de o diretório ~/bin2/
ser removido completamente).
Obviamente, esse problema é criado pela expansão do shell /home/my_user/bin*
para todos os nomes de arquivos e diretórios que começam bin
no meu $HOME
diretório no momento em que o rsync
comando é executado. Então, tentei citar a fonte como "/home/my_user/bin*"
, mas neste caso recebo o erro:
rsync: [sender] link_stat "/home/my_user/bin*" failed: No such file or directory (2)
Quais opções são necessárias para que eu possa usar curingas para a(s) origem(s) e terei a réplica exata do arquivo de origem e estrutura de diretórios, também no destino?
Observação:rsync version 3.2.3 protocol version 31
Você pode usar
--include
/--exclude
gostar:Mas acho que seria mais fácil ter uma estrutura diferente onde você pudesse sincronizar apenas um diretório pai.