[OT] Cudzysłowy, apostrofy, spacje a rsync
Łukasz Maśko
masko w ipipan.waw.pl
Pią, 10 Sty 2014, 10:12:03 CET
Temat jest offtopic, ale może ktoś mi pomoże rozwiązać takie zagadnienie.
Mam komputer w pracy i laptop. Struktura katalogów z dokumentami na obu jest
taka sama. CZASAMI potrzebuję je sobie zsynchronizować, ale nie chcę tego
robić całościowo, czyli synchronizować całego poddrzewa katalogów z
dokumentami. Interesują mnie pojedyncze podkatalogi. Zrobiłem sobie taki
skrypcik:
#!/bin/bash
rsync -vau -e ssh "ed w geralt:$PWD/" "$PWD/"
Wchodzę do interesującego mnie podkatalogu, odpalam i - w założeniach -
powinno mi zaciągnąć zmiany ze zdalnego komputera. I działa - ale wyłącznie
wtedy, gdy w PWD nie ma spacji. Jeśli jest, to się wywraca:
$ rsync -vau -e ssh "ed w geralt:$PWD/" "$PWD/"
receiving incremental file list
rsync: link_stat "/home/users/ed/doc/artykuly/z" failed: No such file or
directory (2)
rsync: change_dir "/home/users/ed//sieci/scheduling" failed: No such file or
directory (2)
sent 8 bytes received 12 bytes 13.33 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors)
(code 23) at main.c(1580) [Receiver=3.0.9]
W zasadzie nic dziwnego. Próbowałem to obejść. Jeśli z linii poleceń napiszę
równoważnik z rozwiniętym PWD i przed spacjami postawię backslash, to działa.
Ale mi chodzi o automat, a tam to odpada. Próbowałem dołożyć te backslashe
sedem:
#!/bin/bash
DIR=`echo $PWD | sed 's/ /\\ /g'`
rsync -vau -e ssh "ed w geralt:$DIR/" "$DIR/"
Ale to niczego nie zmienia, dalej wywraca się tak samo. Może jakaś
podpowiedź, jak obejść ten problem? Mogę co prawda podmieniać sedem spację na
znak zapytania, ale to może być za dużo i takiego rozwiązania chcę uniknąć.
--
Łukasz Maśko _o)
Lukasz.Masko(at)ipipan.waw.pl /\\
Registered Linux User #61028 _\_V
Ubuntu: staroafrykańskie słowo oznaczające "Nie umiem zainstalować Debiana"
Więcej informacji o liście pld-users-pl