Overzicht
De uitsluitingsfunctionaliteit van `rsync` is cruciaal in complexe bestandssynchronisatiescenario's. Door specifieke logbestanden, tijdelijke bestanden, metadata van versiebeheersystemen (.git, .svn) uit te sluiten van het synchronisatiedoel, kunt u de overdrachtstijd verkorten, schijfruimte besparen en voorkomen dat onnodige gegevens worden gekopieerd.
Belangrijkste kenmerken
Dit zijn de kernfuncties die de uitsluitingsfunctionaliteit van `rsync` biedt.
- **Uitsluiting op basis van patronen**: U kunt uitsluiten op basis van bestandsnamen of paden met behulp van wildcard (glob) patronen.
- **Uitsluiting op basis van bestandslijsten**: U kunt uitsluitingspatronen beheren door ze in een apart bestand te schrijven.
- **Flexibele regeltoepassing**: U kunt complexe in-/uitsluitingsregels definiëren in combinatie met de `--include` optie.
- **Prestatieoptimalisatie**: Verhoogt de synchronisatiesnelheid door onnodige bestandsoverdrachten te verminderen.
Belangrijkste opties
Dit zijn de kernopties die worden gebruikt om bestanden en mappen uit te sluiten met het `rsync` commando.
Uitsluitingsregels specificeren
Andere nuttige opties
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`rsync-exclude` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Dit zijn praktische voorbeelden van het gebruik van de uitsluitingsopties van `rsync`.
Specifieke bestandsextensies uitsluiten
rsync -av --exclude='*.log' --exclude='*.tmp' /path/to/source/ /path/to/destination/
Synchroniseert de bronmap naar de doelmap, waarbij `.log` en `.tmp` bestanden worden uitgesloten.
Specifieke mappen uitsluiten
rsync -av --exclude='node_modules/' --exclude='.git/' /path/to/source/ /path/to/destination/
Synchroniseert de bronmap, waarbij de `node_modules` en `.git` mappen worden uitgesloten.
Uitsluitingslijstbestand gebruiken
rsync -av --exclude-from=exclude_list.txt /path/to/source/ /path/to/destination/
Sluit uit van het synchronisatiedoel met behulp van de patronen die zijn gedefinieerd in het bestand `exclude_list.txt`. **Voorbeeldinhoud van exclude_list.txt:** ``` *.bak /temp_files/ logs/ ```
Alleen specifieke bestanden opnemen en de rest uitsluiten
rsync -av --include='*.conf' --exclude='*' /path/to/source/ /path/to/destination/
Sluit alle bestanden standaard uit en neemt alleen bestanden met de extensie `.conf` op voor synchronisatie. De volgorde van `--include` en `--exclude` is belangrijk.
Specifieke bestanden uitsluiten bij synchronisatie naar een externe server
rsync -avz --exclude='.DS_Store' --exclude='cache/' /path/to/local/user@remote_host:/path/to/remote/
Synchroniseert de inhoud van een lokale map naar een externe server, waarbij `.DS_Store` bestanden en de `cache/` map worden uitgesloten.
Tips & Aandachtspunten
Dit zijn tips en aandachtspunten voor het effectief gebruiken van de uitsluitingsopties van `rsync` en het vermijden van mogelijke problemen.
Begrijp de patroonovereenkomstregels
Uitsluitingspatronen werken volgens de filterregels van `rsync`.
- **Wildcards**: `*` komt overeen met elke reeks tekens, `?` komt overeen met een enkel teken. `**` komt overeen over mapgrenzen heen.
- **Paden**: Als een patroon begint met `/`, is het relatief ten opzichte van de root van de bronmap. Als het eindigt met `/`, komt het alleen overeen met mappen.
- **Relatieve paden**: Als een patroon geen `/` bevat, komt het overeen op elk directoriumniveau. Bijvoorbeeld: `--exclude='temp'` sluit zowel `/path/to/source/temp` als `/path/to/source/subdir/temp` uit.
Belang van optievolgorde
De `--include` en `--exclude` opties worden verwerkt in de volgorde waarin ze op de opdrachtregel verschijnen. Om specifieke bestanden op te nemen en de rest uit te sluiten, moet u `--include` eerst gebruiken en `--exclude='*'` daarna.
- `--include='*.txt' --exclude='*'` (Neemt alle `.txt` bestanden op, sluit de rest uit)
- `--exclude='*' --include='*.txt'` (Sluit alle bestanden uit, sluit ook `.txt` bestanden uit - onbedoeld resultaat)
Gebruik testuitvoering (`--dry-run`)
Voordat u belangrijke gegevens daadwerkelijk synchroniseert, gebruikt u altijd de `-n` of `--dry-run` optie om het verwachte gedrag te controleren. Dit is zeer effectief om onbedoelde uitsluitingen of opnames te voorkomen.
- `rsync -avn --exclude='*.log' /path/to/source/ /path/to/destination/`
Gebruik `-vv` optie voor debugging
Wanneer uitsluitingsregels niet naar verwachting werken, kan het toevoegen van de `-vv` (verbose) optie helpen bij het debuggen, omdat `rsync` gedetailleerde informatie zal weergeven over welke bestanden worden overgeslagen en door welke regels ze zijn uitgesloten.
- `rsync -avv --exclude='*.bak' /path/to/source/ /path/to/destination/`