Linux Commands for Beginners 24 - Transferring Files with rsync
Innholdsfortegnelse:
- Før du begynner
- Ekskluder en bestemt fil
- Utelat en spesifikk katalog
- Ekskluder flere filer eller kataloger
- Ekskluder flere filer eller kataloger basert på et mønster
- Konklusjon
Rsync er et raskt og allsidig kommandolinjeværktøy som synkroniserer filer og mapper mellom to steder over et eksternt skall.
Med Rsync kan du speile data, opprette inkrementelle sikkerhetskopier og kopiere filer mellom systemer. Når du kopierer data, kan det være lurt å ekskludere en eller flere filer eller kataloger basert på navn eller sted.
I denne opplæringen vil vi vise deg hvordan du ekskluderer filer og kataloger med rsync.
Før du begynner
Du bør ha en grunnleggende kunnskap om hvordan rsync fungerer.
I eksemplene nedenfor vil vi bruke rsync med alternativet
-a
. Dette forteller rsync til å synkronisere kataloger rekursivt, overføre spesielle og blokkere enheter og bevare symbolske lenker, endringstider, gruppe, eierskap og tillatelser.
Når du ekskluderer filer eller kataloger, må du bruke deres relative stier til kildekatalogen.
Det er to alternativer for å spesifisere filene og katalogene du vil ekskludere:
- Fra en kommandolinje, bruk alternativet -
--exclude
en fil bruker du alternativet ---exclude-from
.
Ekskluder en bestemt fil
For å ekskludere en spesifikk fil, passerer du den relative banen til filen til alternativet -
--exclude
.
I eksemplet
src_directory/file.txt
blir ikke filen
src_directory/file.txt
overført:
rsync -a --exclude 'file.txt' src_directory/ dst_directory/
Utelat en spesifikk katalog
Å ekskludere en spesifikk katalog er det samme som å ekskludere en fil, bare pass den relative banen til katalogen til alternativet -
--exclude
som vist nedenfor:
rsync -a --exclude 'dir1' src_directory/ dst_directory/
rsync -a --exclude 'dir1/*' src_directory/ dst_directory/
Ekskluder flere filer eller kataloger
For å ekskludere flere filer eller kataloger, spesifiser bare flere -
--exclude
alternativer:
rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/
rsync -a --exclude={'file1.txt', 'dir1/*', 'dir2'} src_directory/ dst_directory/
Hvis antallet filer og / eller kataloger du vil ekskludere er stort, i stedet for å bruke flere alternativer -
--exclude
, kan du spesifisere filene og katalogene du vil ekskludere i en fil og sende filen til -
--exclude-from
alternativ.
Kommandoen nedenfor gjør nøyaktig det samme som den ovenfor:
rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/
utelukke-file.txt
Ekskluder flere filer eller kataloger basert på et mønster
Med rsync kan du også ekskludere filer og kataloger basert på et mønster som samsvarer med fil- eller katalognavnet.
For eksempel å ekskludere alle
.jpg
filer du vil kjøre:
rsync -a --exclude '*.jpg*' src_directory/ dst_directory/
Det er lite vanskeligere å ekskludere alle andre filer og kataloger, bortsett fra de som samsvarer med et visst mønster. La oss si at du vil ekskludere alle andre filer og kataloger, bortsett fra filene som slutter med
.jpg
.
Et alternativ er å bruke følgende kommando:
rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/
Når du bruker flere inkluderer / ekskluder alternativet, gjelder den første samsvarsregelen.
-
--include='*.jpg'
- Først inkluderer vi alle.jpg
filer.--include='*/'
- Da inkluderer vi alle kataloger i katalogensrc_directory
. Uten denne rsync vil bare kopiere*.jpg
filer i øverste katalog.-m
- Fjerner de tomme katalogene.
Et annet alternativ vil være å røre utdataene fra finnkommandoen til rsync:
find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/
-
-printf %P\\0\\n
- vil fjernesrc_directory/
fra filstien.--files-from=-
- betyr bare å inkludere filene fra standardinngangen (filer som er sendt fra--files-from=-
).
Konklusjon
I denne opplæringen lærte du hvordan du ekskluderer filer og kataloger når du overførte data med Rsync. Det er mye mer å lære om Rsync på Rsync Brukerhåndbok side.
Hvordan kopiere filer og kataloger i Linux
Kopiering av filer og kataloger er en av de vanligste oppgavene du utfører når du jobber på kommandolinjen. I Linux er det flere kommandoer for å kopiere filer med cp og rsync som de mest brukte verktøyene.
Hvordan fjerne filer og kataloger ved hjelp av linux kommandolinje
I denne opplæringen vil vi vise deg hvordan du bruker rm-kommandoen til å fjerne filer og kataloger gjennom eksempler og forklaringer på de vanligste rm-alternativene.
Hvordan flytte filer og kataloger i Linux (mv-kommando)
Å flytte filer og kataloger er en av de mest grunnleggende oppgavene du ofte trenger å utføre på et Linux-system. I denne opplæringen vil vi forklare hvordan du bruker mv-kommandoen til å flytte filer og kataloger.