Android

Cum să excludeți fișierele și directoarele cu rsync

Cum te inscrii in directoare web folosind ca exemplu rodirector tk

Cum te inscrii in directoare web folosind ca exemplu rodirector tk

Cuprins:

Anonim

Rsync este o utilitate rapidă și versatilă a liniei de comandă care sincronizează fișierele și folderele între două locații de pe un shell de la distanță.

Cu Rsync puteți reflecta datele, puteți crea copii de rezervă incrementale și puteți copia fișierele între sisteme. Când copiați date, este posibil să doriți să excludeți unul sau mai multe fișiere sau directoare bazate pe numele sau locația lor.

În acest tutorial, vă vom arăta cum să excludeți fișierele și directoarele cu rsync.

Înainte de a începe

Ar trebui să aveți cunoștințe de bază despre cum funcționează rsync.

În exemplele de mai jos, vom folosi rsync cu opțiunea -a . Aceasta indică rsync să sincronizeze directiv repertoriile, să transfere dispozitive speciale și să blocheze și să păstreze legături simbolice, timpi de modificare, grup, proprietate și permisiuni.

Când excludeți fișierele sau directoarele, trebuie să utilizați căile lor relative către directorul sursă.

Există două opțiuni pentru a specifica fișierele și directoarele pe care doriți să le excludeți:

  • Dintr-o linie de comandă, utilizând opțiunea - exclude.Din un fișier, utilizând opțiunea - --exclude-from .

Excludeți un fișier specific

Pentru a exclude un fișier specific, treceți calea relativă a fișierului la opțiunea --exclude .

În următorul exemplu, fișierul src_directory/file.txt nu va fi transferat:

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

Excludeți un director specific

Excluderea unui director specific este aceeași cu excluderea unui fișier, trebuie doar să treceți calea relativă către director la opțiunea - --exclude așa cum se arată mai jos:

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

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

Excludeți mai multe fișiere sau directoare

Pentru a exclude mai multe fișiere sau directoare, pur și simplu specificați mai multe opțiuni - excludeți:

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

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

Dacă numărul de fișiere și / sau directoare pe care doriți să le excludeți este mare, în loc să utilizați mai multe opțiuni - excludeți, puteți specifica fișierele și directoarele pe care doriți să le excludeți într-un fișier și să le treceți la - --exclude-from opțiune.

Comanda de mai jos face exact aceeași cu cea de mai sus:

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

file1.txt dir1/* dir2

Excludeți mai multe fișiere sau directoare pe baza unui model

Cu rsync puteți, de asemenea, să excludeți fișierele și directoarele pe baza unui model care se potrivește cu fișierul sau cu numele directorului.

De exemplu, pentru a exclude toate fișierele .jpg pe care le-ar rula:

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

Este puțin mai complicat să excludem toate celelalte fișiere și directoare, cu excepția celor care se potrivesc cu un anumit tipar. Să spunem că doriți să excludeți toate celelalte fișiere și directoare, cu excepția fișierelor care se termină cu .jpg .

O opțiune este să utilizați următoarea comandă:

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

Când se utilizează opțiunea multiple include / exclude, se aplică prima regulă de potrivire.

  • --include='*.jpg' - Mai întâi includem toate fișierele .jpg . --include='*/' - Atunci includem toate directoarele din directorul din src_directory . Fără aceasta, rsync va copia doar fișiere *.jpg din directorul de nivel superior. -m - Îndepărtează directoarele goale.

O altă opțiune ar fi să conectați ieșirea comenzii find la rsync:

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

  • -printf %P\\0\\n - va elimina src_directory/ din calea fișierului. --files-from=- - înseamnă includ doar fișierele de la intrarea standard (fișiere trecute de la comanda find).

Concluzie

În acest tutorial, ați învățat cum să excludeți fișierele și directoarele atunci când transferați date cu Rsync. Există multe altele pentru a afla despre Rsync la pagina Manualului utilizatorului Rsync.

terminalul rsync