Come includere file esclusi in un rsync


16

Sto provando a configurare un rsync che esclude tutti i .*file tranne, .htaccessma sfortunatamente, questo non funziona:

rsync -avP --exclude=".*" --include="./.htaccess" ./. user@server:/dir

È possibile in qualche modo escludere le regole generali di esclusione?

Risposte:


24

Si applica la prima regola di abbinamento, quindi includi .htaccessprima di escludere .*.

rsync -avP --include=".htaccess" --exclude=".*" . user@server:/dir

Questo copia .htaccessad ogni livello. Non so con cosa intendevi ./.htaccess; se si desidera abbinare un file solo alla radice della copia, avviare il modello con a /. Se vuoi solo il root .htaccess, non puoi semplicemente usarlo --include='/.htaccess' --exclude='.*', perché la regola non rooted in realtà ha la precedenza qui, devi fare qualcosa di più complicato:

rsync -avP --exclude='/*/**/.htaccess' --include='.htaccess' --exclude=".*" . user@server:/dir

Ulteriori letture: principi di base per i filtri rsync .


@ fred.bear: quello era un errore di battitura autentico e brutto. Grazie per averlo individuato!
Gilles 'SO- smetti di essere malvagio' l'

Grazie, avevo provato a mettere il --includeprimo, ma il "./" davanti al "./.htaccess" era ciò che lo stava uccidendo.
Ricco

1
@Richo nota che se ci sono directory nascoste che contengono un .htaccessfile, dovrai --include='.*/'(penso) prima della finale --exclude, vedi anche qui
Tobias Kienzler
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.