Startpagina > Bestands- en mapbeheer > rsync-exclude

rsync-exclude: Specificeer bestanden/mappen bij bestandssynchronisatie

`rsync` is een krachtige tool die wordt gebruikt om bestanden efficiënt te synchroniseren tussen lokale en externe systemen. Met name de opties `--exclude` en `--exclude-from` stellen u in staat om specifieke bestanden, mappen of items die overeenkomen met patronen uit te sluiten van het synchronisatiedoel. Deze gids richt zich op de uitsluitingsfunctionaliteit van `rsync` en is zeer nuttig voor het voorkomen van onnodige bestandsoverdrachten en het back-uppen of kopiëren van specifieke gegevens.

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/`

Hétzelfde categoriecommando