Filkopiering i terminalen
Å kopiere innholdet i en katalog til en annen er en veldig enkel oppgave. Du har imidlertid mange muligheter til å gjøre det. Linux er velsignet med mange verktøy for å manipulere filer og kataloger gjennom forskjellige handlinger.
Alle trinnene er demonstrert på Ubuntu 18.04.1. Først, la oss lage en håndfull dummy -filer å jobbe med.
$ mkdir -v dir_a
La oss nå lage dummy -filene ved hjelp av berøring.
$ Touch Dummy 1… 10
La oss opprette en annen mappe i DIR_A med en håndfull dummy -filer.
$ mkdir -v dir_b
$ Touch Dummy 1… 10
Nå ser hele strukturen i katalogen Dir_a slik.
$ tre Dir_a
CP -kommando
De CP Kommandoen er langt på vei det vanligste verktøyet for å kopiere filer. Det er et verktøy som kommer som standard med et hvilket som helst Linux -system. Kopiering av filer og kataloger er det eneste formålet med CP. Den støtter et bredt spekter av funksjoner.
Dette er den grunnleggende strukturen til CP kommando.
$ cp
La oss for eksempel lage en kopi av dummy1 fil med navnet dummy1_copy.
$ cp dummy1 dummy1_copy
La oss nå prøve å kopiere flere filer samtidig. For en slik operasjon krever CP at destinasjonen skal være en katalog. Her skal jeg bruke jokertegnuttrykk for å ta tak i alt dummy filer og legg dem inn i ~/Nedlastinger katalog.
$ cp dummy* ~/nedlastinger
Hva med å kopiere en katalog?
$ cp -vr dir_a dir_a_copy
Her brukte vi to forskjellige flagg. La oss ha en rask oversikt over dem.
Ønsker å følge de symbolske koblingene? Legg til "-l" -flagget.
$ cp -lvr
La oss si at destinasjonskatalogen allerede har en fil med samme navn. Hvis du vil unngå å overskrive, bruk "-n" -flagget. Det vil sikre at i tilfelle konflikt, vil ikke CP overskrive filen.
$ cp -nv
Hvis du utfører en sensitiv kopi/lim inn handling, er det bedre å ha den fineste kontrollen over hva som skjer, riktig? I et slikt tilfelle, bruk "-i" -flagget. Det står for en interaktiv modus der CP vil be om bekreftelse hver gang en konflikt oppstår.
$ cp -i
Hvis du er mer interessert, er mannsiden alltid en av de beste dokumentene. Lær mer om CP.
$ mann cp
MV -kommando
MV -verktøyet ligner på CP -verktøyet. I stedet for å kopiere, flytter MV -filer og kataloger imidlertid. Sammenlignet med CP, er det enklere.
Kommandostrukturen til MV ligner på CP.
$ mv
Å flytte innholdet i dir_a til dir_a_copy, Kjør følgende kommando.
$ mv -v dir_a/ dir_a_copy
Her er "-v" -flagget for verbose modus. Hvis du vil flytte bare innholdet i DIR_A, bruk følgende i stedet. I dette tilfellet må målkatalogen eksistere på forhånd.
$ mv -v dir_a/* dir_a_copy
MV -verktøyet har ikke mye å jobbe med. For alle tilgjengelige alternativer, sjekk ut mannssiden.
$ mann mv
Rsync -kommando
Dette er et av de mest populære og kraftige verktøyene for filkopiering, brukt mest til sikkerhetskopi. Den har muligheten til å kopiere filer over en ekstern tilkobling. I motsetning til CP og MV, kommer det også med massevis av avanserte filkopieringsalternativer som tilbyr den største tilpasningen av dens oppførsel.
Rsync er stort sett kjent for sin delta-overføringsalgoritme som dramatisk reduserer datamengden som må byttes. Når det gjelder ekstern synkronisering, sparer dette mye båndbredde.
Rsync kommer vanligvis ikke forhåndsinstallert i noen Linux-distro. På grunn av sin popularitet er den imidlertid nå tilgjengelig på alle de store Linux -distrosene. Bruk PKG -er.org for å finne ut Rsync -pakken for din distro. Forutsatt at du fikk Rsync installert, la oss komme i gang.
Først den grunnleggende kommandostrukturen til Rsync. Det er ganske likt CP.
$ rsync
Før du kommer i gang, er her en håndfull populære Rsync -argumenter.
La oss sjekke dem ut i aksjon. For det første katalogkopien. Kjør følgende kommando.
$ rsync -vr dir_a/ dir_a_copy
For ytterligere detaljert utdata, la oss bruke "-vv" -flagget.
$ rsync -vv -r dir_a/ dir_a_copy
La oss nå sjekke ut den kule delen av Rsync. Vi diskuterte hvordan Rsync intelligent kopierer bare filene som er endret, og lagrer båndbredde og diskskriv. Det er på tide å sjekke det ut i aksjon. I dette eksemplet vil handlingen bli utført i dir_a katalog.
$ rsync -vv-ingen-hel-fil-dummy* dir_b/
Til tross for at Delta-Transmission er aktivert, kan det hende at Rsync ikke bruker det når du utfører lokal dataoverføring.
La oss nå sjekke ut Dry Run -funksjonen. Før du kjører noen Rsync -kommando for ekte, er det alltid viktig at du tester den ut på forhånd. Det er her det tørre løp kommer inn. Rsync vil sende ut hva som vil skje hvis kommandoen faktisk skulle kjøre.
$ rsync -anvr dir_a/ dir_a_copy
Rsync kan også fungere med eksterne kataloger, ikke noe problem. Alt det trenger er en riktig SSH -forbindelse med SSH -nøkler konfigurert.
$ rsync
Ønsker å utføre en trekkoperasjon? For å sette det i Rsyncs perspektiv, vil Rsync kopiere innholdet i kildekatalogen og deretter slette kildeinnholdet.
$ rsync -v-Fjern kildefiler
Sjekk ut resultatet av operasjonen.
$ tre Dir_a
$ tree dir_a_copy
Siste tanker
CP og Rsync er de vanligste verktøyene du kan bruke til å kopiere filer i en mappe på Linux -terminalen. Begge er også veldig bra for skripting. Bare sørg for å teste funksjonene ut før implementering.
Nyt!