rsync: dois pontos nos nomes dos arquivos

23

Além de renomear os arquivos primeiro, como posso rsyncarquivos com dois pontos em seus nomes?

象 嘉 道
fonte
Verifique se você está usando dir/e não dir/*nos argumentos do rsync.
grawity
O problema acontece quando eu rsync a partir de um disco rígido para um cartão de memória flash:rsync: mkstemp "/media/verd/rence/.Using an expressive work: fact or fiction.pdf.RbjlKK" failed: Invalid argument (22) rsync: mkstemp "/media/verd/rence/.What's in a concept: structural foundations for semantic networks.pdf.tLXoZz" failed: Invalid argument (22)
象嘉道
Para futuros leitores, observe também que isso depende do sistema de arquivos: os discos rígidos típicos do Windows com NTFS não podem conter arquivos :em primeiro lugar
phil294

Respostas:

22

Dois pontos são especiais apenas no primeiro componente de diretório de um argumento de linha de comando. Portanto, se você tem o que parece ser um caminho relativo, faça um prefixo ./.

$ mkdir sou:rce
$ rsync -a sou:rce/ de:st/
The source and destination cannot both be remote.
$ rsync -av ./sou:rce/ ./de:st/
sending incremental file list
created directory ./de:st
./

Em um script:

case $source in
  /*) :;;
  *) source=./$source;;
esac
case $dest in
  /*) :;;
  *) dest=./$dest;;
esac
rsync "$source" "$dest"
Gilles 'SO- parar de ser mau'
fonte
Obrigado Guilles. O problema acontece quando eu rsync a partir de um disco rígido para um cartão de memória flash:rsync: mkstemp "/media/verd/rence/.Using an expressive work: fact or fiction.pdf.RbjlKK" failed: Invalid argument (22) rsync: mkstemp "/media/verd/rence/.What's in a concept: structural foundations for semantic networks.pdf.tLXoZz" failed: Invalid argument (22)
象嘉道
3
@Kejia 柯嘉: Ah, ok, seu problema é renomear-e-rsync, não passar os dois pontos para rsync. Esta pergunta surgiu antes no site do Ubuntu: Como posso substituir dois pontos quando sincronizo uma chave USB? Infelizmente, ninguém produziu uma resposta satisfatória.
Gilles 'SO- stop be evil'