rsync: deux points dans les noms de fichiers

23

Autre que de renommer les fichiers en premier, comment puis-je les rsyncfichiers qui peuvent avoir des deux-points dans leurs noms?

象 嘉 道
la source
Assurez-vous que vous utilisez dir/et non dir/*dans les arguments rsync.
grawity
Le problème se produit lorsque je rsync d'un disque dur vers une clé USB: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)
象 嘉 道
Pour les futurs lecteurs, veuillez également noter que cela dépend du système de fichiers: les disques durs typiques de Windows avec NTFS ne peuvent pas contenir de fichiers avec :en premier lieu
phil294

Réponses:

22

Les deux-points ne sont spéciaux que dans le premier composant de répertoire d'un argument de ligne de commande. Donc, si vous avez ce qui ressemble à un chemin relatif, ajoutez le préfixe ./.

$ 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
./

Dans un script:

case $source in
  /*) :;;
  *) source=./$source;;
esac
case $dest in
  /*) :;;
  *) dest=./$dest;;
esac
rsync "$source" "$dest"
Gilles 'SO- arrête d'être méchant'
la source
Merci, Guilles. Le problème se produit lorsque je rsync d'un disque dur vers une clé USB: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, votre problème est de renommer et rsync, pas de passer les deux-points à rsync. Cette question est apparue auparavant sur le site Ubuntu: comment puis-je remplacer les deux-points lorsque je rsync sur une clé USB? Malheureusement, personne n'a produit de réponse satisfaisante.
Gilles 'SO- arrête d'être méchant'