Startpagina > Bestands- en mapbeheer > rsync-delete

rsync --delete: Verwijder doelbestanden om te synchroniseren met de bron

De `--delete` optie van het `rsync` commando biedt de functionaliteit om bestanden die niet in de bron aanwezig zijn, uit de doelmap te verwijderen bij het synchroniseren van de bron- en doelmappen. Dit is handig bij het maken van back-ups of het spiegelen van gegevens wanneer u wilt dat de doelmap exact overeenkomt met de bron. Aangezien dit een krachtige functie is, is voorzichtigheid geboden bij het gebruik ervan.

Overzicht

`rsync --delete` kopieert de inhoud van de bronmap naar de doelmap en verwijdert vervolgens bestanden of mappen die alleen in de doelmap bestaan, om beide locaties perfect te synchroniseren. Het wordt vaak gebruikt voor back-upsynchronisatie, webserverimplementaties en synchronisatie van ontwikkelomgevingen.

Belangrijkste Kenmerken

  • Perfecte synchronisatie van bron- en doelmappen
  • Verwijderen van bestanden/mappen die alleen in het doel aanwezig zijn
  • Efficiënte synchronisatie door incrementele overdracht
  • Ondersteuning voor synchronisatie via netwerk

Belangrijkste Opties

Dit zijn de belangrijkste opties die vaak samen met `rsync --delete` worden gebruikt. Vooral de `--dry-run` optie moet altijd eerst worden gebruikt om fatale fouten te voorkomen.

Synchronisatie Controle

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`rsync-delete` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Gebruiksvoorbeelden

`rsync --delete` is een krachtige functie, dus het is belangrijk om altijd eerst de resultaten te controleren met de `--dry-run` optie.

Voorbeeld van verwijderingsactie (verplicht)

rsync -avn --delete /path/to/source/ /path/to/destination/

Controleer van tevoren welke bestanden worden verwijderd bij het synchroniseren van de bronmap (`/path/to/source`) en de doelmap (`/path/to/destination`). Er vinden geen daadwerkelijke wijzigingen plaats.

Werkelijke synchronisatie en verwijdering

rsync -av --delete /path/to/source/ /path/to/destination/

Nadat de veiligheid is gecontroleerd met de voorbeeldweergave, synchroniseert u daadwerkelijk de bron en het doel en verwijdert u bestanden die alleen in het doel aanwezig zijn. `-a` staat voor archiefmodus en `-v` voor gedetailleerde uitvoer.

Synchroniseren en verwijderen met uitsluiting van specifieke bestanden/mappen

rsync -av --delete --exclude='logs/' --exclude='*.tmp' /path/to/source/ /path/to/destination/

Verwijdert bestanden in het doel die niet in de bron aanwezig zijn, maar sluit specifieke bestanden of mappen uit (bijv. de `logs/` map en `*.tmp` bestanden) van de verwijdering tijdens de synchronisatie.

Synchroniseren en verwijderen met een externe server

rsync -av --delete /path/to/local/source/ user@remote_host:/path/to/remote/destination/

Synchroniseert de inhoud van een lokale map met een map op een externe server en verwijdert bestanden die alleen op de externe server aanwezig zijn. De overdracht gebeurt veilig via SSH.

Tips & Waarschuwingen

`rsync --delete` kan een zeer krachtig en destructief commando zijn, dus u moet de volgende punten zeker in acht nemen bij het gebruik ervan.

Belangrijkste Waarschuwingen

  • **Gebruik altijd eerst `--dry-run` (-n)**: Controleer altijd van tevoren welke bestanden worden verwijderd voordat u de actie daadwerkelijk uitvoert.
  • **Controleer de bron- (Source) en doel- (Destination) paden**: Het verkeerd opgeven van paden kan leiden tot onbedoeld gegevensverlies.
  • **Back-up is essentieel**: Maak altijd een back-up voordat u met belangrijke gegevens werkt.
  • **Belang van de slash (/)**: Een slash aan het einde van het bronpad betekent dat de *inhoud* van de map wordt gekopieerd, terwijl zonder slash de map *zelf* wordt gekopieerd. Dit verschil is belangrijk bij gebruik met `--delete`.

Verschil in paden met slash (/)

De aanwezigheid of afwezigheid van een slash aan het einde van het bronpad beïnvloedt het gedrag.

  • `rsync -av --delete source/ dest/`: Kopieert de *inhoud* van de `source` map naar `dest` en verwijdert bestanden die alleen in `dest` bestaan. De `source` map zelf wordt niet in `dest` aangemaakt.
  • `rsync -av --delete source dest/`: Kopieert de `source` map *zelf* naar de `dest` map. Dit betekent dat het pad `dest/source/` wordt aangemaakt. Als `dest` al een bestand met dezelfde naam als de `source` map bevat, kan dit worden verwijderd.

Hétzelfde categoriecommando