rsync --files-from seçeneğini kullanmıyor mu?


13

Ben yönetmeye çalışıyorum rsync -a --files-from=~/.rsync_file_list ~/destinationve bana söyler: rsync error: syntax or usage error (code 1) at options.c(1652) [client=3.0.7]. Biri beni neyi yanlış yaptığım konusunda aydınlatabilir mi?

Dosya ~/.rsync_file_listsadece ~/yeni satırlarla ayrılmış , önceden hazırlanmış dosya adlarının bir listesini içerir (yine de hepsini aynı satırda, aynı sonuçla listelemeyi denedim).

Eğer koşarsam rsync -a ~/file ~/file2 ~/file3 ~/destinationiyi çalışır. Peki bu --files-fromseçenek hakkında ne eksik ?


deneyinsed "s#~/#/home/wolf/#g" -ie ~/.rsync_file_list
Andy

@Andy: Ne yazık ki, aynı sonuç.
Kurt

Yanıtlar:


20

Tamam, problemi buldum.

  1. Dosya adlarını içeren dosya yalnızca dosya adlarını içermelidir ; göreceli veya başka hiçbir yol yok;
  2. --files-from=FILEBelirttikten sonra , rsync, listelenen dosyaları bulmak için bir kaynak dizin gerektirir.

Yani komut olmalı rsync -a --files-from=~/.rsync_file_list $HOME/ /destination.

.rsync_file_list okumalı:

file 1
file 2
file 3

3
Düzeltme: Belirli bir dosyadaki dosya adları kaynak dizine göredir, ancak onun üstünde olamaz (no ../). Baştaki eğik çizgiler yok sayılır, bu nedenle mutlak yollar çalışmaz.
Kurt

Kendi cevabınızı düzenleyebileceğinize ve cevabın kendisinde daha sonra öğrendiğiniz bu çok güzel eki ve alakalı bilgi parçasını ekleyebileceğinizi düşünüyorum.
Vinícius M

0

Rsync "~" sembolünü tanıyacak ve çevirecek kadar akıllı olmadıkça, "~" kullanılması "dosyadan" dosyasında çalışmayabilir.

Kabuğunuzun komut satırında bir komutun parçası olarak bir "~" belirttiğinizde , argümanı programa iletmeden önce "~" ana dizininize dönüştüren kabuğun kendisidir . Bu yüzden yazsanız bile , "gören" aslında çözümlenmiş yol, ya da .rsync -a ~/filersyncrsync -a /home/foo/file

Daha fazla bilgi için Bash Tilde Genişletme bölümüne bakın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.