Pokazat ćemo vam kako možete izuzeti datoteku ili direktorij u rsyncu koristeći različite primjere. Ovdje predstavljeni primjeri testirani su na Ubuntu 20.04 LTS, međutim, oni vrijede i za druge Linux distribucije na kojima je instaliran rsync.
Izuzmite određenu datoteku
Tijekom sinkronizacije direktorija, možda ćete htjeti izuzeti određenu datoteku koja se nalazi u njemu. To možete učiniti pomoću opcije -exclude iza koje slijedi ime datoteke priloženo zarezima.
Sintaksa naredbe bit će:
$ rsync -a --exclude 'ime_datoteke' izvorni_direktorij / odredišni_direktorij /Ovdje, a opcija se koristi za rekurzivnu sinkronizaciju.
Na primjer, za izuzimanje datoteke s imenom uzorak.txt iz izvora prilikom sinkronizacije src_dir i dest_dir, naredba bi bila:
$ rsync -a --exclude 'uzorak.txt 'src_dir / dest_dir /
Izuzmite određeni direktorij
Da biste izuzeli određeni direktorij (uključujući njegove poddirektorijume) iz izvora prilikom sinkronizacije direktorija izvora i odredišta, upotrijebite sljedeću sintaksu:
$ rsync -a --exclude 'ime_datoteke' src_dir / dest_dir /Na primjer, za izuzeće direktorija s imenom sampledir prilikom sinkronizacije src_dir i dest_dir, naredba bi bila:
$ rsync -a --exclude 'sampledir' src_dir / dest_dir /
Ako želite izuzeti sadržaj direktorija, ali ne i sam direktorij, upotrijebite ime direktorija praćeno / *:
$ rsync -a --exclude 'sampledir / *' src_dir / dest_dir /Gornja naredba samo će kopirati direktorij na odredište, ali ne i njegov sadržaj.
Izuzmite više datoteka ili direktorija
Da biste izuzeli više datoteka ili direktorija tijekom postupka sinkronizacije, navedite svaku od njih kako slijedi:
$ rsync -a --exclude 'file_name' --exclude 'directory1 --exclude' directory2 'src_dir / dest_dir /
Umjesto da precizira -isključiti opcija zasebno za svaku datoteku ili direktorij, možete koristiti jednu -isključiti opcija navođenjem svih datoteka ili direktorija u kovrčavim zagradama.
$ rsync -a --exclude = 'ime_datoteke', 'direktorij1', 'direktorij2' src_dir / dest_dir /
Druga mogućnost za izuzeće više datoteka ili direktorija je njihovo popisivanje u datoteci, a zatim prosljeđivanje naziva datoteke datoteci -isključiti-iz opcija:
$ rsync -a --exclude-from 'list' src_dir / dest_dir /Ovdje "popis" sadrži naziv datoteke i direktorija koje želimo izuzeti. Ova se naredba sinkronizira src_dir s dest_dir, isključujući datoteke i direktorije spomenute u datoteci “list”.
Izuzmite datoteke ili direktorije koji odgovaraju uzorku
Pomoću rsync također možete izuzeti datoteke ili direktorije koji odgovaraju određenom uzorku. Na primjer, tijekom sinkronizacije direktorija, možda ćete htjeti izuzeti sve datoteke koje završavaju s .txt produženje. U ovom slučaju naredba bi bila:
$ rsync -a --exclude '*.txt 'src_dir / dest_dir /
Izuzmite datoteku po veličini
Pomoću rsync možete izuzeti datoteke na temelju njihove minimalne ili maksimalne veličine. Ovdje nećemo koristiti opciju -exclude, već -max-size =
Evo popisa naših src_dir koja prikazuje nazive datoteka zajedno s njihovim veličinama u MB.
Recimo da želimo sinkronizirati sve datoteke u dest_dir osim onih čija je veličina veća od 100 MB. U ovom slučaju naredba bi bila:
$ rsync -av --max-size = 100m src_dir / dest_dir /
Slično tome, za izuzeće datoteka koje su manje od određene veličine, recimo 50 MB, naredba bi bila:
$ rsync -av --min-size = 50m src_dir / dest_dir /Zaključak
To je sve! U ovom smo postu raspravljali o različitim primjerima za izuzeće datoteke ili direktorija u rsync-u. Pokazali smo kako izuzeti jednu datoteku ili direktorij, više datoteka i direktorija, datoteke koje odgovaraju određenom uzorku i datoteke na temelju njihovih minimalnih / maksimalnih veličina.