We laten u aan de hand van verschillende voorbeelden zien hoe u een bestand of map in rsync kunt uitsluiten. De hier gepresenteerde voorbeelden zijn getest op Ubuntu 20.04 LTS, deze zijn echter ook geldig voor andere Linux-distributies waarop rsync is geïnstalleerd.
Een specifiek bestand uitsluiten
Tijdens het synchroniseren van een map, wil je misschien een specifiek bestand erin uitsluiten. U kunt dit doen met de optie -exclude gevolgd door de bestandsnaam tussen komma's.
De syntaxis van de opdracht zal zijn:
$ rsync -a --exclude 'bestandsnaam' source_directory/ destination_directory/Hier, een optie wordt gebruikt voor recursieve synchronisatie.
Om bijvoorbeeld een bestand met de naam . uit te sluiten monster.tekst van de bron tijdens het synchroniseren src_dir en dest_dir, het commando zou zijn:
$ rsync -a --exclude 'voorbeeld'.txt' src_dir/ dest_dir/
Een specifieke directory uitsluiten
Gebruik de volgende syntaxis om een specifieke map (inclusief de submappen) van de bron uit te sluiten bij het synchroniseren van de bron- en de doelmappen:
$ rsync -a --exclude 'directory_name' src_dir/ dest_dir/Om bijvoorbeeld een map met de naam . uit te sluiten voorbeeldmap bij het synchroniseren van de src_dir en dest_dir, het commando zou zijn:
$ rsync -a --exclude 'sampledir' src_dir/ dest_dir/
Als u de inhoud van de map wilt uitsluiten, maar niet de map zelf, gebruik dan de mapnaam gevolgd door /*:
$ rsync -a --exclude 'sampledir/* ' src_dir/ dest_dir/De bovenstaande opdracht kopieert alleen de map naar de bestemming, maar niet de inhoud ervan.
Meerdere bestanden of mappen uitsluiten
Om meerdere bestanden of mappen uit te sluiten tijdens het synchronisatieproces, specificeert u ze allemaal als volgt:
$ rsync -a --exclude 'bestandsnaam' --exclude 'directory1 --exclude 'directory2' src_dir/dest_dir/
In plaats van te specificeren -uitsluiten optie afzonderlijk voor elk bestand of elke map, kunt u een enkele -uitsluiten optie door alle bestanden of mappen tussen accolades op te geven.
$ rsync -a --exclude='file_name' ,'directory1','directory2' src_dir/dest_dir/
Een andere optie om meerdere bestanden of mappen uit te sluiten, is door ze in een bestand op te nemen en vervolgens de bestandsnaam door te geven aan de -Uitsluiten van keuze:
$ rsync -a --exclude-from 'list' src_dir/ dest_dir/Hier bevat de "lijst" de naam van het bestand en de mappen die we willen uitsluiten. Deze opdracht synchroniseert src_dir met de dest_dir terwijl de bestanden en mappen die in het "lijst" -bestand worden vermeld, worden uitgesloten.
Bestanden of mappen uitsluiten die overeenkomen met een patroon
Met rsync kunt u ook bestanden of mappen uitsluiten die overeenkomen met een specifiek patroon. Als u bijvoorbeeld een map synchroniseert, wilt u misschien alle bestanden uitsluiten die eindigen op a .tekst uitbreiding. De opdracht zou in dit geval zijn:
$ rsync -a --exclude '*.txt' src_dir/ dest_dir/
Een bestand uitsluiten op grootte
Met rsync kun je bestanden uitsluiten op basis van hun minimale of maximale grootte. Hier gebruiken we de optie -exclude niet, maar de -max-size=
Hier is de lijst van onze src_dir die bestandsnamen samen met hun grootte in MB toont.
Laten we zeggen dat we alle bestanden naar de dest_dir willen synchroniseren, behalve die met een grootte groter dan 100 MB. In dit geval zou de opdracht zijn:
$ rsync -av --max-size=100m src_dir/ dest_dir/
Evenzo, om bestanden uit te sluiten die kleiner zijn dan een specifieke grootte, laten we zeggen 50 MB, zou de opdracht zijn:
$ rsync -av --min-size=50m src_dir/ dest_dir/Conclusie
Dat is alles wat er is! In dit bericht hebben we verschillende voorbeelden besproken om een bestand of een map in rsync uit te sluiten. We hebben laten zien hoe u een enkel bestand of map, meerdere bestanden en mappen, bestanden die overeenkomen met een specifiek patroon en de bestanden kan uitsluiten op basis van hun minimum/maximum grootte.