Hvordan kan jeg kopiere filer i en mappe til en annen mappe på Linux Terminal

How Can I Copy Files Folder Into Another Folder Linux Terminal



Når du trenger å kopiere innholdet i en katalog til en annen, for Linux, er det mange verktøy tilgjengelig. Hvilken skal jeg bruke? Det avhenger av situasjonen og personlige preferanser. I denne artikkelen vil vi se på måter du kan kopiere filinnhold fra en mappe til en annen i terminalen. Den inneholder noen av de populære valgene for forskjellige situasjoner.

Filkopiering i terminal

Å kopiere innholdet i en katalog til en annen er en veldig enkel oppgave. Imidlertid har du mange muligheter for å 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. La oss først lage en håndfull dummy -filer å jobbe med.



$mkdir -vdir_A



La oss nå lage dummy -filene ved hjelp av berøring.





$ta pådummy{1..10}

La oss lage en annen mappe i dir_A med en håndfull dummy -filer.



$mkdir -vdir_B
$ta pådummy{1..10}

Nå ser hele strukturen i katalogen dir_A slik ut.

$tredir_A

Cp -kommando

De cp kommandoen er langt det vanligste verktøyet for å kopiere filer. Det er et verktøy som leveres som standard med alle Linux -systemer. 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 <alternativer> <kilde> <mål>

La oss for eksempel lage en kopi av dummy1 fil med navnet dummy1_copy .

$cpdummy1 dummy1_copy

La oss nå prøve å kopiere flere filer samtidig. For en slik operasjon krever cp at målet er en katalog. Her bruker jeg jokertegn for å få tak i alt dummy filer og legg dem inn i ~/Nedlastinger katalog.

$cpdummy*~/Nedlastinger

Hva med å kopiere en katalog?

$cp -vrdir_A dir_A_copy

Her brukte vi to forskjellige flagg. La oss få en rask oversikt over dem.

  • -r: Står for en tilbakevendende kopi (inkludert skjulte filer). Må-ha flagg hvis kopiering innebærer en hel katalog eller mer.
  • -v: Står for verbose . CP -verktøyet sender ut hver eneste handling det utfører.

Vil du følge de symbolske koblingene? Legg til -L -flagget.

$cp -Lvr <kilde> <mål>

La oss si at destinasjonskatalogen allerede har en fil med samme navn. Hvis du vil unngå å overskrive, bruker du -n -flagget. Det vil sikre at cp ikke overskriver filen i tilfelle konflikter.

$cp -nv <kilde> <mål>

Hvis du utfører en sensitiv kopi/lim inn -handling, er det bedre å ha den beste kontrollen over hva som skjer, ikke sant? I et slikt tilfelle bruker du -i -flagget. Det står for en interaktiv modus der cp vil be om bekreftelse hver gang en konflikt oppstår.

$cp -Jeg <kilde> <mål>

Hvis du er mer interessert, er mannssiden alltid en av de beste dokumentasjonene. Lær mer om cp.

$Mann cp

mv -kommando

Mv -verktøyet ligner på cp -verktøyet. I stedet for å kopiere flytter mv imidlertid filer og kataloger. Sammenlignet med cp er det en enklere.

Kommandostrukturen til mv er lik cp.

$mv <alternativ> <kilde> <mål>

For å flytte innholdet i dir_A til dir_A_copy , kjør følgende kommando.

$mv -vdir_A/dir_A_copy

Her er -v -flagget for verbose modus. Hvis du bare vil flytte innholdet i dir_A, kan du bruke følgende i stedet. I dette tilfellet må målkatalogen eksistere på forhånd.

$mv -vdir_A/ *dir_A_copy

Mv -verktøyet har ikke mye å jobbe med. For alle tilgjengelige alternativer, sjekk mannssiden.

$Mann mv

Rsync -kommando

Dette er et av de mest populære og kraftfulle verktøyene for filkopiering, hovedsakelig brukt til sikkerhetskopiering. Den har muligheten til å kopiere filer over en ekstern tilkobling. I motsetning til cp og mv, kommer det også med massevis av avanserte alternativer for filkopiering som gir den største tilpasningen av oppførselen.

Rsync er mest kjent for sin delta-overføringsalgoritme som dramatisk reduserer mengden data som må utveksles. Ved ekstern synkronisering sparer dette mye båndbredde.

Rsync kommer vanligvis ikke forhåndsinstallert i noen Linux-distro. På grunn av sin popularitet er den nå tilgjengelig på alle de store Linux -distroene. Bruk Pkgs.org for å finne ut rsync -pakken for distroen din. Forutsatt at du har installert rsync, la oss komme i gang.

Først den grunnleggende kommandostrukturen til rsync. Det er ganske likt cp.

$rsync<alternativer> <kilde> <mål>

Før du begynner, er her en håndfull populære rsync -argumenter.

  • -v : Ordløs modus, sender ut hvilken handling som helst som utføres på konsollskjermen.
  • -vv : Oversiktlig modus med flere detaljer
  • -r : Rekursiv modus, må være tilstede ved kopiering av kataloger
  • -Med : Komprimer data
  • -til : Arkiv data
  • -n : Tørrkjøring, bør kjøres i kombinasjon med en omfattende modus. Bare sender ut handlingene hvis kommandoen skulle kjøres på ekte
  • –Slette : Slett filen (e) og katalogen (e) i destinasjonskatalogen hvis kildekatalogen ikke inneholder dem lenger
  • -no-hele-filen : Tvinger rsync til å bruke sin deltaoverføringsalgoritme, uansett. Nyttig i scenarier der du må sikre minst mulig dataskriving.
  • –Fjerne-kilde-fil : Slett kildefil (er) etter kopiering.

La oss sjekke dem ut i aksjon. Først katalogkopien. Kjør følgende kommando.

$rsync-vrdir_A/dir_A_copy

For ytterligere detaljert utgang, la oss bruke -vv -flagget.

$rsync-vv -rdir_A/dir_A_copy

La oss nå sjekke den kule delen av rsync. Vi diskuterte hvordan rsync kun kopierer filene som er modifisert, og sparer båndbredde og diskskriving. 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-fildummy*dir_B/

Til tross for deltaoverføring aktivert, kan det hende at rsync ikke bruker det når du utfører lokal dataoverføring.

La oss nå sjekke tørrkjøringsfunksjonen. Før du kjører en rsync -kommando på ekte, er det alltid viktig at du tester den på forhånd. Det er her tørrkjøringen kommer inn. Rsync sender ut hva som vil skje hvis kommandoen faktisk skulle kjøres.

$rsync-anvrdir_A/dir_A_copy

Rsync kan også fungere med eksterne kataloger, ikke noe problem. Alt du trenger er en riktig SSH -tilkobling med SSH -nøkler konfigurert.

$ rsync<alternativ> <local_dir>
<brukernavn> @<remote_host>:<destinasjon_dir>

Vil du utføre en flytteoperasjon? For å sette det i rsyncs perspektiv, vil rsync kopiere innholdet i kildekatalogen og deretter slette kildeinnholdet.

$rsync-v --fjerne kildefiler <kilde> <mål>

Sjekk resultatet av operasjonen.

$tredir_A

$tredir_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 gode for manus. Bare sørg for å teste funksjonene før implementering.

Nyt!