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.