androide

Come escludere file e directory con rsync

Come escludere File Cartelle e attivare l'Accesso controllato in Windows Defender

Come escludere File Cartelle e attivare l'Accesso controllato in Windows Defender

Sommario:

Anonim

Rsync è un'utilità da riga di comando rapida e versatile che sincronizza file e cartelle tra due posizioni su una shell remota.

Con Rsync è possibile eseguire il mirroring dei dati, creare backup incrementali e copiare file tra sistemi. Quando si copiano i dati, è possibile che si desideri escludere uno o più file o directory in base al nome o alla posizione.

In questo tutorial, ti mostreremo come escludere file e directory con rsync.

Prima di iniziare

Dovresti avere una conoscenza di base di come funziona rsync.

Negli esempi seguenti, useremo rsync con l'opzione -a , Questo dice a rsync di sincronizzare ricorsivamente le directory, trasferire dispositivi speciali e bloccare e preservare collegamenti simbolici, tempi di modifica, gruppo, proprietà e permessi.

Quando si escludono file o directory, è necessario utilizzare i loro percorsi relativi alla directory di origine.

Esistono due opzioni per specificare i file e le directory che si desidera escludere:

  • Da una riga di comando, usando l'opzione --exclude Da un file, usando l'opzione --exclude-from .

Escludere un file specifico

Per escludere un file specifico, passare il percorso relativo al file all'opzione --exclude .

Nel seguente esempio il file src_directory/file.txt non verrà trasferito:

rsync -a --exclude 'file.txt' src_directory/ dst_directory/

Escludere una directory specifica

Escludere una directory specifica equivale a escludere un file, basta passare il percorso relativo alla directory all'opzione --exclude come mostrato di seguito:

rsync -a --exclude 'dir1' src_directory/ dst_directory/

rsync -a --exclude 'dir1/*' src_directory/ dst_directory/

Escludere più file o directory

Per escludere più file o directory è sufficiente specificare più opzioni --exclude :

rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/

rsync -a --exclude={'file1.txt', 'dir1/*', 'dir2'} src_directory/ dst_directory/

Se il numero di file e / o directory che si desidera escludere è elevato, invece di utilizzare più opzioni --exclude è possibile specificare i file e le directory che si desidera escludere in un file e passare il file a --exclude-from opzione.

Il comando seguente fa esattamente lo stesso di quello sopra:

rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/ escludere-file.txt

file1.txt dir1/* dir2

Escludere più file o directory in base a un modello

Con rsync puoi anche escludere file e directory in base a un modello che corrisponde al nome del file o della directory.

Ad esempio, per escludere tutti i file .jpg dovresti eseguire:

rsync -a --exclude '*.jpg*' src_directory/ dst_directory/

È un po 'più complicato escludere tutti gli altri file e directory tranne quelli che corrispondono a un determinato schema. Supponiamo che tu voglia escludere tutti gli altri file e directory tranne i file che terminano con .jpg .

Un'opzione è utilizzare il seguente comando:

rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/

Quando si utilizzano più opzioni include / exclude, si applica la prima regola corrispondente.

  • --include='*.jpg' - Innanzitutto .jpg tutti i file .jpg . --include='*/' - Quindi src_directory tutte le directory all'interno della directory in src_directory . Senza questo rsync copierà solo i file *.jpg nella directory di livello superiore. -m : rimuove le directory vuote.

Un'altra opzione sarebbe quella di reindirizzare l'output del comando find a rsync:

find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/

  • -printf %P\\0\\n - rimuoverà la src_directory/ dal percorso del file. --files-from=- - significa includere solo i file dall'input standard (file passati dal comando find).

Conclusione

In questo tutorial, hai imparato come escludere file e directory durante il trasferimento di dati con Rsync. C'è molto altro da sapere su Rsync nella pagina del Manuale dell'utente di Rsync.

terminale rsync