rsync non utilizza l'opzione --files-from?


13

Sto cercando di correre rsync -a --files-from=~/.rsync_file_list ~/destinatione mi dice: rsync error: syntax or usage error (code 1) at options.c(1652) [client=3.0.7]. Qualcuno può illuminarmi su ciò che sto facendo di sbagliato?

Il file ~/.rsync_file_listcontiene solo un elenco di nomi file preceduti da ~/, separati da newline (anche se ho anche provato a elencarli tutti sulla stessa riga, con lo stesso risultato).

Se corro rsync -a ~/file ~/file2 ~/file3 ~/destinationfunziona bene. Quindi cosa mi manca --files-fromdell'opzione?


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

@Andy: Ahimè, stesso risultato.
Lupo,

Risposte:


20

Ok, ho trovato il problema.

  1. Il file contenente i nomi dei file deve contenere solo i nomi dei file; nessun percorso, relativo o meno;
  2. Dopo aver specificato --files-from=FILE, rsync richiede una directory di origine in cui trovare i file elencati.

Quindi il comando dovrebbe essere rsync -a --files-from=~/.rsync_file_list $HOME/ /destination.

.rsync_file_list dovresti leggere:

file 1
file 2
file 3

3
Correzione: i nomi dei file nel file dato SONO relativi alla directory di origine, ma non possono trovarsi sopra di essa (no ../). Le barre iniziali verranno ignorate, quindi i percorsi assoluti non funzionano.
Lupo,

Credo che puoi modificare la tua risposta e aggiungere questa aggiunta molto bella e le informazioni pertinenti che hai scoperto più avanti nella risposta stessa.
Vinícius M,

0

L'uso di "~" potrebbe non funzionare all'interno di un file "file da" a meno che rsync non sia abbastanza intelligente da riconoscere e tradurre il simbolo "~".

Quando si specifica un "~" come parte di un comando nella riga di comando della shell, è la shell stessa che converte "~" nella directory home prima di passare l'argomento al programma. Quindi, anche se si digita rsync -a ~/file, ciò che rsync"vede" è in realtà il percorso risolto, o rsync -a /home/foo/file.

Vedi Bash Tilde Expansion per maggiori informazioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.