C'è un modo per inserire commenti in un file rsync --files-from?


10

Ho un file che rsync usa come --files-from:

dir1
dir2
dir3

Voglio essere in grado di inserire commenti sopra ogni voce dir in questo modo:

# my dir1 comment
dir1

#dir2 comment
dir2

#yet another comment
dir3

ma rsync si lamenta "Nessun file o directory"

Finora ho provato #, //, - ,, SPAZIO

C'è un modo per commentare / disabilitare le voci?


Non sono a conoscenza di alcun meccanismo di commento per il files-fromfile.
jw013,

Risposte:


17

Secondo la manpagina sursync:

"... Linee vuote in FILE e linee che iniziano con ';' o '#' vengono ignorati ... "

Ho appena eseguito un test rapido e in effetti #e ;le linee vengono ignorate.


Non posso secondi ;ma il #(guardando qui , cercando ‚quando le regole sono ... '). → Quindi probabilmente #è un po 'più sicuro ...
Frank Nocke,

Non in questa pagina man di rSync: linux.die.net/man/1/rsync , né in quest'altra: ss64.com/bash/rsync.html . Potresti per favore riferire il tuo?
Sopalajo de Arrierez,

1
La tua pagina mostra infatti che le righe che iniziano con # sono commenti: linux.die.net/man/1/rsync indica "... Quando le regole vengono lette da un file, le righe vuote vengono ignorate, così come le righe di commento che iniziano con a lq # rq. ... "(lq e rq sono notazione per la citazione a sinistra e la citazione a destra ... Non so perché quella pagina Web mostri le virgolette come queste abbreviazioni). Indipendentemente da ciò, # in un file di esclusione rsync sono commenti. Forse l'altra pagina man a cui fai riferimento è semplicemente vecchia. Puoi rivedere la cronologia dei log di rsync qui: git.samba.org/?p=rsync.git;a=log
rob_7cc

La cosa migliore da fare è guardare la pagina man sulla piattaforma in cui stai sviluppando per determinare la versione di rsync che stai usando; puoi cercare nella pagina man come i commenti sono gestiti da quella versione di rsync.
rob_7cc

10

Fai un grep -v '^#' file > /tmp/filetmpe poi avvia il tuo rsync/tmp/filetmp

A seconda della shell, potresti essere in grado di evitare il file temporaneo (questo è valido in Bash):

rsync --files-from <(grep -v '^#' file) …

La <( … )sintassi dall'aspetto strano è ciò che Bash chiama la sostituzione del processo .


3
Ho aggiunto il modello al tuo grep per te — Suppongo che questo sia ciò che volevi dire ... Aggiungerò anche un trucco bash, sentiti libero di ripristinare una o entrambe le modifiche se non sei d'accordo.
derobert,

È possibile utilizzare --files-from=-per aver rsyncletto l'elenco dall'input standard.
Kusalananda

-1

stato per ora (rsync versione 3.1.1 protocollo versione 31): tutte le righe che iniziano #o ;vengono ignorate mannon hanno nemmeno informazioni al riguardo (il mio caso era diverso, volevo copiare un file chiamato ;_chare sono rimasto sorpreso che non stesse nemmeno usando - -from0 opzione - dopo aver cambiato riga per ./;_chariniziare a funzionare). Sembra che la stessa funzione di analisi sia utilizzata come per le opzioni --include-fromo --exclude-from Per queste due opzioni manmenzioni la pagina: Blank lines in the file and lines starting with ’;’ or ’#’ are ignored

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.