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

How Can I Copy Files Folder Into Another Folder Linux Terminal



Når du har brug for at kopiere indholdet af en bibliotek til en anden, i Linux, er der masser af værktøjer til din rådighed. Hvilken skal man bruge? Det afhænger af situationen og personlige præferencer. I denne artikel vil vi se på måder, du kan kopiere filindhold fra en mappe til en anden i terminalen. Det indeholder nogle af de populære valg til forskellige situationer.

Filkopiering i terminal

Kopiering af indholdet af et bibliotek til et andet er en meget enkel opgave. Du har dog masser af muligheder for at gøre det. Linux er velsignet med mange værktøjer til at manipulere filer og mapper gennem forskellige handlinger.







Alle trin er demonstreret på Ubuntu 18.04.1. Lad os i første omgang oprette en håndfuld dummy -filer at arbejde med.



$mkdir -vdir_A



Lad os nu oprette dummy -filerne ved hjælp af berøring.





$røre veddummy{1..10}

Lad os oprette en anden mappe i dir_A med en håndfuld dummy -filer.



$mkdir -vdir_B
$røre veddummy{1..10}

Nu ser hele strukturen i biblioteket dir_A sådan ud.

$trædir_A

Cp -kommando

Det cp kommando er langt det mest almindelige værktøj til kopiering af filer. Det er et værktøj, der leveres som standard med ethvert Linux -system. Kopiering af filer og mapper er det eneste formål med cp. Det understøtter en lang række funktioner.

Dette er den grundlæggende struktur for cp kommando.

$cp <muligheder> <kilde> <bestemmelsessted>

Lad os f.eks. Lave en kopi af dummy1 fil med navnet dummy1_copy .

$cpdummy1 dummy1_copy

Lad os nu prøve at kopiere flere filer på én gang. For en sådan operation kræver cp, at destinationen er et bibliotek. Her vil jeg bruge jokertegn til at få fat i alt dummy filer og læg dem i ~/Downloads vejviser.

$cpdummy*~/Downloads

Hvad med at kopiere et bibliotek?

$cp -vrdir_A dir_A_copy

Her brugte vi to forskellige flag. Lad os få en hurtig opdeling af dem.

  • -r: Står for en rekursiv kopi (inklusive eventuelle skjulte filer). Must-have-flag, hvis kopiering involverer et helt bibliotek eller mere.
  • -v: Står for ordrig . CP -værktøjet udsender hver eneste handling, det udfører.

Vil du følge de symbolske links? Tilføj -L -flag.

$cp -Lvr <kilde> <bestemmelsessted>

Lad os sige, at destinationsmappen allerede har en fil med samme navn. Hvis du vil undgå at overskrive, skal du bruge -n -flaget. Det sikrer, at cp i tilfælde af konflikt ikke overskriver filen.

$cp -nv <kilde> <bestemmelsessted>

Hvis du udfører en følsom kopi/indsæt -handling, er det bedre at have den fineste kontrol over, hvad der sker, ikke? I et sådant tilfælde skal du bruge -i -flaget. Det står for en interaktiv tilstand, hvor cp vil bede om bekræftelse, hver gang der opstår en konflikt.

$cp -jeg <kilde> <bestemmelsessted>

Hvis du er mere interesseret, er mandsiden altid en af ​​de bedste dokumenter. Lær mere om cp.

$mand cp

mv kommando

Mv -værktøjet ligner cp -værktøjet. Men i stedet for at kopiere flytter mv filer og mapper. Sammenlignet med cp er det en enklere.

Kommandostrukturen for mv ligner cp.

$mv <mulighed> <kilde> <bestemmelsessted>

At flytte indholdet af dir_A til dir_A_copy , kør følgende kommando.

$mv -vdir_A/dir_A_copy

Her er -v -flaget til ordrig mode. Hvis du kun vil flytte indholdet af dir_A, skal du bruge følgende i stedet. I dette tilfælde skal målmappen eksistere på forhånd.

$mv -vdir_A/ *dir_A_copy

Mv -værktøjet har ikke meget at arbejde med. For alle de tilgængelige muligheder, tjek mandsiden.

$mand mv

Rsync kommando

Dette er et af de mest populære og kraftfulde værktøjer til filkopiering, der hovedsagelig bruges til sikkerhedskopiering. Det har evnen til at kopiere filer via en fjernforbindelse. I modsætning til cp og mv kommer det også med masser af avancerede muligheder for filkopiering, der tilbyder den største tilpasning af dens adfærd.

Rsync er mest kendt for sin delta-overførselsalgoritme, der dramatisk reducerer mængden af ​​data, der skal udveksles. I tilfælde af fjernsynkronisering sparer dette en masse båndbredde.

Rsync kommer generelt ikke forudinstalleret i nogen Linux-distro. På grund af dens popularitet er den nu tilgængelig på alle de store Linux -distros. Brug Pkgs.org for at finde ud af rsync -pakken til din distro. Forudsat at du har installeret rsync, lad os komme i gang.

Først den grundlæggende kommandostruktur for rsync. Det ligner ganske cp.

$rsync<muligheder> <kilde> <bestemmelsessted>

Inden du går i gang, er her en håndfuld populære rsync -argumenter.

  • -v : Oversigtstilstand, udsender den handling, der udføres på konsolens skærm.
  • -vv : Oversigtstilstand med flere detaljer
  • -r : Rekursiv tilstand, skal være til stede ved kopiering af biblioteker
  • -Med : Komprimer data
  • -til : Arkivér data
  • -n : Tørløb, bør køres i kombination med en detaljeret tilstand. Udsender blot handlingerne, hvis kommandoen skulle køre for alvor
  • - slet : Slet fil (er) og bibliotek (er) i destinationsmappen, hvis kildekataloget ikke længere indeholder dem
  • -no-hele-fil : Tvinger rsync til at bruge sin deltatransmissionsalgoritme, uanset hvad. Nyttigt i scenarier, hvor du skal sikre den mindste mængde dataskrivning.
  • –Fjerne-kilde-fil : Slet kildefil (er) efter kopiering.

Lad os tjekke dem ud i aktion. Først kopieres biblioteket. Kør følgende kommando.

$rsync-vrdir_A/dir_A_copy

For yderligere detaljeret output, lad os bruge -vv -flag.

$rsync-vv -rdir_A/dir_A_copy

Lad os nu tjekke den fede del af rsync. Vi diskuterede, hvordan rsync kun intelligent kopierer de filer, der ændres, hvilket sparer båndbredde og diskskrivning. Det er tid til at tjekke det ud i aktion. I dette eksempel udføres handlingen inden for dir_A vejviser.

$rsync-vv -ingen-hel-fildummy*dir_B/

På trods af delta-transmission aktiveret, anvender rsync det muligvis ikke, når du udfører lokal dataoverførsel.

Lad os nu tjekke tørløbsfunktionen. Inden du kører en rsync -kommando for alvor, er det altid vigtigt, at du tester den på forhånd. Det er her, tørløbet kommer ind. Rsync sender det, der vil ske, hvis kommandoen rent faktisk skulle køre.

$rsync-anvrdir_A/dir_A_copy

Rsync kan også arbejde med eksterne mapper, ikke noget problem. Alt det kræver er en ordentlig SSH -forbindelse med konfigurerede SSH -nøgler.

$ rsync<mulighed> <local_dir>
<brugernavn> @<remote_host>:<destination_dir>

Vil du udføre en flytteoperation? For at sætte det i rsync's perspektiv vil rsync kopiere indholdet i kildekataloget og derefter slette kildeindholdet.

$rsync-v -fjern-kilde-filer <kilde> <bestemmelsessted>

Tjek resultatet af operationen.

$trædir_A

$trædir_A_copy

Endelige tanker

Cp og rsync er de mest almindelige værktøjer, du kan bruge til at kopiere filer i en mappe på Linux -terminalen. Begge er også rigtig gode til scripting. Bare sørg for at teste funktionerne før implementering.

God fornøjelse!