How to transfer the files or directories using rsync command?
Inhoudsopgave:
- Voordat je begint
- Sluit een specifiek bestand uit
- Een specifieke map uitsluiten
- Sluit meerdere bestanden of mappen uit
- Sluit meerdere bestanden of mappen uit op basis van een patroon
- Conclusie
Rsync is een snel en veelzijdig opdrachtregelhulpprogramma dat bestanden en mappen tussen twee locaties via een externe shell synchroniseert.
Met Rsync kunt u gegevens spiegelen, incrementele back-ups maken en bestanden tussen systemen kopiëren. Wanneer u gegevens kopieert, wilt u misschien een of meer bestanden of mappen uitsluiten op basis van hun naam of locatie.
In deze tutorial laten we u zien hoe u bestanden en mappen kunt uitsluiten met rsync.
Voordat je begint
Je moet een basiskennis hebben van hoe rsync werkt.
In de onderstaande voorbeelden gebruiken we rsync met de optie
-a
Dit vertelt rsync om mappen recursief te synchroniseren, speciale en blokkeer apparaten over te dragen en symbolische koppelingen, aanpassingstijden, groep, eigendom en machtigingen te behouden.
Wanneer u bestanden of mappen uitsluit, moet u hun relatieve paden naar de bronmap gebruiken.
Er zijn twee opties om de bestanden en mappen op te geven die u wilt uitsluiten:
- Vanaf een opdrachtregel met de optie
--exclude
Uit een bestand met de optie--exclude-from
.
Sluit een specifiek bestand uit
Om een specifiek bestand uit te sluiten, geeft u het relatieve pad naar het bestand door aan de optie
--exclude
.
In het volgende voorbeeld wordt het bestand
src_directory/file.txt
niet overgedragen:
rsync -a --exclude 'file.txt' src_directory/ dst_directory/
Een specifieke map uitsluiten
Het uitsluiten van een specifieke map is hetzelfde als het uitsluiten van een bestand, geef gewoon het relatieve pad naar de map door aan de
--exclude
optie zoals hieronder getoond:
rsync -a --exclude 'dir1' src_directory/ dst_directory/
rsync -a --exclude 'dir1/*' src_directory/ dst_directory/
Sluit meerdere bestanden of mappen uit
Om meerdere bestanden of mappen uit te sluiten, geeft u eenvoudig meerdere -
--exclude
opties uit:
rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/
rsync -a --exclude={'file1.txt', 'dir1/*', 'dir2'} src_directory/ dst_directory/
Als het aantal bestanden en / of mappen dat u wilt uitsluiten groot is, kunt u in plaats van meerdere
--exclude
opties te gebruiken de bestanden en mappen opgeven die u in een bestand wilt uitsluiten en het bestand doorgeven aan de
--exclude-from
optie.
Het onderstaande commando doet precies hetzelfde als het bovenstaande:
rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/
sluiten-file.txt
Sluit meerdere bestanden of mappen uit op basis van een patroon
Met rsync kunt u ook bestanden en mappen uitsluiten op basis van een patroon dat overeenkomt met de bestands- of mapnaam.
Om bijvoorbeeld alle
.jpg
bestanden uit te sluiten die u zou uitvoeren:
rsync -a --exclude '*.jpg*' src_directory/ dst_directory/
Het is wat lastiger om alle andere bestanden en mappen uit te sluiten, behalve mappen die overeenkomen met een bepaald patroon. Stel dat u alle andere bestanden en mappen wilt uitsluiten, behalve de bestanden die eindigen op
.jpg
.
Een optie is om de volgende opdracht te gebruiken:
rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/
Wanneer u de optie voor meerdere opnemen / uitsluiten gebruikt, is de eerste overeenkomende regel van toepassing.
-
--include='*.jpg'
- Eerst nemen we alle.jpg
bestanden op.--include='*/'
- Dan nemen we alle mappen op in de map insrc_directory
. Zonder deze optie kopieert rsync alleen*.jpg
bestanden naar de map op het hoogste niveau.-m
- Verwijdert de lege mappen.
Een andere optie zou zijn om de uitvoer van de opdracht find naar rsync te leiden:
find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/
-
-printf %P\\0\\n
- verwijdert desrc_directory/
uit het bestandspad.--files-from=-
- betekent alleen de bestanden van de standaardinvoer (bestanden die worden doorgegeven via de opdracht find).
Conclusie
In deze zelfstudie hebt u geleerd hoe u bestanden en mappen kunt uitsluiten bij het overbrengen van gegevens met Rsync. Er is nog veel meer te leren over Rsync op de Rsync gebruikerspagina.
Windows Kernel-gebeurtenis-ID 41 netjes af te sluiten. Dit systeem is opnieuw gestart zonder netjes af te sluiten
Meer informatie over het oplossen van Windows Kernel-gebeurtenis-ID 41 Het systeem is opnieuw opgestart zonder eerst volledig af te sluiten Windows 7 en Windows Server 2008.
Hoe u sneller bestanden en mappen kunt kopiëren in Windows met Teracopy
Leer hoe u sneller bestanden en mappen kunt kopiëren in Windows met TeraCopy.
Hoe bestanden over te dragen met rsync via ssh
Met rsync kunt u bestanden en mappen via SSH overbrengen van en naar externe servers. In deze zelfstudie leggen we uit hoe u bestanden met rsync via SSH kopieert.