logo

cp-opdracht in Linux/Unix | Linux kopieerbestand

'cp' betekent kopiëren. De opdracht 'cp' wordt gebruikt om een ​​bestand of map te kopiëren.

Inleiding tot cp-opdracht

Het cp-commando wordt gebruikt om mappen en bestanden te kopiëren. De opdracht bevat drie primaire bedieningsmodi, weergegeven door de argumenttypen die aan het programma worden getoond om een ​​bestand naar andere bestanden te kopiëren, meerdere bestanden naar een willekeurige map, of om de hele mappen naar andere mappen te kopiëren.

Verder accepteert het hulpprogramma verschillende opdrachtregeloptievlaggen voor detaillering van de geïmplementeerde bewerkingen. De twee belangrijkste specificaties zijn GNU cp en POSIX cp. GNU cp bevat diverse extra opties op de POSIX-versie. De opdracht is ook beschikbaar binnen de EFI-shell.

Bedrijfsmodi van cp-opdracht

De cp-opdracht bevat drie primaire bedieningsmodi. Deze modi worden voltooid op basis van het aantal en het type argumenten dat wordt getoond aan het programma dat wordt aangeroepen.

binaire boom versus bst
  • Het programma kan de inhoud van het eerste bestand naar het tweede bestand kopiëren, waardoor het tweede bestand essentieel wordt wanneer het programma twee padnaamargumenten naar bestanden bevat.
  • Het programma kan alle bronbestanden naar de gewenste map kopiëren, waardoor elk bestand nog niet beschikbaar is als het programma een of meer padnaamargumenten van bestanden bevat en deze een padargument naar een map nastreeft.
  • Het cp-commando kan elk bestand in de bronmap naar de gewenste map kopiëren, waardoor alle mappen of bestanden nodig zijn als de argumenten van het programma de padnamen voor twee mappen zijn. Deze bedieningsmodus heeft een extra optievlag nodig om het kopiëren van de recursieve map weer te geven. De bron wordt naar de bestemming gekopieerd, terwijl er een nieuwe map wordt gemaakt als de bestemming niet bestaat als de doelmap al beschikbaar is.

Opties van cp Commando

Keuze Beschrijving
--archief, -a Het is gelijk aan de -dR --preserve=all.
--alleen attributen Het kopieert niet de gegevens van het bestand, alleen de attributen.
-B Het is als een back-up, maar accepteert geen enkel argument.
--back-up[=CONTROLE] Het maakt een back-up van alle bestaande bestemmingsbestanden.
--kopie-inhoud Wanneer het recursief is, kopieert het speciale bestandsinhoud.
-D Het is gelijk aan --no-dereference --preserve=links.
--kracht, -f Als een bestaand doelbestand niet kan worden geopend, verwijder het dan en probeer het opnieuw (deze optie wordt vermeden als ook de vlag -n wordt gebruikt).
--interactief, -i Er wordt om bevestiging gevraagd voordat het wordt overschreven (overschrijft de vorige vlag -n).
-H In SOURCE volgt het de symbolische koppelingen op de opdrachtregel.
--link, -l Het specificeert harde koppelingsbestanden in plaats van kopiëren.
--dereferentie, -L In SOURCE volgt het altijd symbolische links.
--geen-klopper, -n Het overschrijft geen enkel bestaand bestand (overschrijft de vlag -i).
--geen-dereferentie, -P In SOURCE volgt het nooit symbolische links.
-P Het is gelijk aan --preserve=mode, tijdstempels, eigendom.
--behoud[=ATTR_LIST] Het behoudt de beschreven kenmerken. Indien mogelijk extra attributen: all, xattr, links, context.
--no-preserve=ATTR_LIST De beschreven kenmerken blijven niet behouden.
--ouders Onder de map wordt de volledige naam van het bronbestand gebruikt.
--recursief, -r, -R Het kopieert recursief mappen.
--reflink[=WANNEER] Het bestuurt CoW/kloonkopieën.
--verwijder-bestemming Het verwijdert alle bestaande bestemmingsbestanden voordat ze worden geopend (in tegenstelling tot --force).
--sparse=WANNEER Het controleert de oprichting van schaarse bestanden.
--string-trailing-slashes Het verwijdert de afsluitende schuine strepen van alle SOURCE-argumenten.
--symbolische-link, -s Het maakt symbolische links in plaats van te kopiëren.
--achtervoegsel=ACHTERVOEGSEL, -S Het overschrijft het algemene back-upachtervoegsel.
--target-directory=MAP, -t Het kopieert elk SOURCE-argument naar DIRECTORY.
--no-target-directory, -T Het beschouwt DEST als een algemeen bestand.
--bijwerken, -u Er wordt gekopieerd als het SOURCE-bestand nieuwer is in vergelijking met het doelbestand of als het doelbestand niet is opgegeven.
--uitgebreid, -v Er wordt aangegeven wat er gedaan wordt.
--één-bestandssysteem, -x Het blijft op het bestandssysteem.
-MET Het stelt de SELinux-beveiligingscontext van het doelbestand in op het standaardtype.
--context[=CTX] Het is hetzelfde als -Z, of als CTX wordt genoemd, wordt de SMACK- of SELinux-beveiligingscontext ingesteld op CTX.
--hulp Het toont het helpmenu en sluit af.
--versie Het biedt versiedetails en uitgangen.

De schaarse SOURCE-bestanden worden gevonden door een goedkope heuristiek, en het gerelateerde DESR-bestand wordt standaard spaarzaam gemaakt. Het is het gedrag waarvoor gekozen is --sparse=automatisch . Wij kunnen beschrijven --sparse=altijd om een ​​spaarzaam DEST-bestand te maken als het SOURCE-bestand een voldoende lange volgorde van nul bytes bevat. Wij kunnen ook solliciteren --sparse=nooit om de oprichting van verspreide bestanden te beperken.

Als --reflink[=altijd] wordt genoemd, implementeer dan een lichtgewicht kopie, waarin de datablokken alleen worden gekopieerd als ze zijn gewijzigd. Als het niet mogelijk is of --reflink=automatisch wordt vermeld, faalt de kopie en valt terug op de standaardkopie. Wij kunnen ook solliciteren --reflink=nooit om te garanderen dat een standaardkopie wordt geïmplementeerd.

Om een ​​bestand naar dezelfde map te kopiëren, zal de syntaxis zijn:

 cp 

Linux-bestand cp

In de bovenstaande momentopname hebben we een kopie gemaakt van 'docu' en noemde het als 'nieuw' . Als in het geval, (in ons geval is het 'newdocu') als het al bestaat, dan zal het eenvoudigweg het eerdere bestand overschrijven.

Om een ​​bestand naar een andere map te kopiëren

We moeten het pad van de doelmap vermelden.

In de onderstaande momentopname is er voorheen geen 'tekst'-bestand. Na het geven van het commando, 'tekst' bestand is gekopieerd naar de doelmap die dat is 'Bureaublad' .

Linux-bestand cp

Linux cp-r

Keuze 'R' met het kopieercommando kan worden gebruikt om een ​​map inclusief de volledige inhoud ervan van een bronmap naar de doelmap te kopiëren.

Syntaxis:

 cp -r 

Voorbeeld:

 cp -r library /home/sssit/Documents 

linux cp-r

In het bovenstaande voorbeeld hebben we directory 'bibliotheek' naar de doelmap /home/sssit/Documenten . Hier is alle inhoud van de map 'bibliotheek', inclusief de inhoud ervan, gekopieerd naar de doelmap.

Linux Kopieer meerdere bestanden of mappen

Er kunnen meerdere bestanden of mappen tegelijk naar een doelmap worden gekopieerd. In dit geval moet het doel een map zijn. Om meerdere bestanden te kopiëren kunt u gebruik maken van jokertekens (cp *.extensie) met hetzelfde patroon.

tekenreeks subtekenreeks java

Syntaxis:

 cp *. 

Voorbeeld:

 cp *.txt /home/sssit/Documents 

Linux kopieert meerdere bestanden

In het bovenstaande voorbeeld hebben we bestanden (bestand1, bestand2, bestand3) met dezelfde extensie gekopieerd '.tekst' naar de map Documenten.

Linux cp --back-up

Als het bestand dat u wilt kopiëren al in de doelmap bestaat, kunt u met deze opdracht een back-up van uw bestaande bestand maken.

Syntaxis:

 cp --backup 

Voorbeeld:

 cp --backup file2.txt /home/sssit/Downloads 

Linux-bestand cp-back-up

Zoals je hierboven kunt zien, 'bestand2.txt' bestaat al in de doelmap. Daarom hebben we een back-up van dit bestand gemaakt en deze naar dezelfde map (met dezelfde naam) gekopieerd.

Nu heeft onze doelmap, 'Downloads', twee bestanden met dezelfde naam (dat is 'bestand2.txt').

Linux cp-i

Met de optie cp '-i' kunt u één keer bevestigen voordat u uw bestand overschrijft.

pyspark-tutorial

Syntaxis:

 cp -i 

Voorbeeld:

 cp -i file3.txt /home/sssit/Desktop 

Linux cp-i

Zoals u kunt zien, wordt er om toestemming gevraagd om het bestand te overschrijven 'bestand3.txt' omdat dit bestand al bestaat in de doelmap. Nu kunt u op drukken En om het bestand te overschrijven en N om het bestand niet te overschrijven.

Linux cp-l

Als u een harde link van een bestand wilt maken in plaats van dat bestand te kopiëren, kunt u optie 'l' gebruiken.

Opmerking: Bij het maken van een harde link van het bestand blijft het inodenummer van de twee bestanden hetzelfde. Terwijl bij kopiëren het inodenummer verandert.

Syntaxis:

 cp -l 

Voorbeeld:

 cp -l file1.txt usr/ 

Linux-bestand cp -l

Houd er rekening mee dat we een harde link van het bestand hebben gemaakt 'bestand1.txt' in 'usr' . Het inodenummer van beide bestanden is hetzelfde.

Linux cp-p

De cp '-p' optie wordt gebruikt om de eigenschappen en attributen van een bestand te behouden. U kunt ook de geselecteerde eigenschappen behouden die u wilt.

Syntaxis:

 cp -p 

Voorbeeld:

 cp -p file2.txt usr/ 

Linux cp-p

Nu kunt u de twee bestanden (origineel en gekopieerd) in de bovenstaande afbeelding matchen, beide hebben dezelfde eigenschappen.

Linux cp-u-v

De opdracht cp -u -v wordt gebruikt als u er zeker van wilt zijn dat het doelbestand ontbreekt of niet bestaat.

Syntaxis:

converteer strin naar int
 cp -u -v 

Voorbeeld:

 cp -u -v docc file1.txt /home/sssit/Downloads/ 

Linux cp-u-v

In de bovenstaande afbeelding kunt u zien dat er twee bestanden zijn 'douche' En 'bestand1.txt' . Nu willen we deze twee bestanden kopiëren naar de map 'Download'. Maar we weten niet dat in de map 'Downloads' het bestand 'file1.txt' al bestaat.

Het commando geven 'cp -u -v' zorgt automatisch voor het reeds bestaande bestand (file1.txt) en zal het niet overschrijven.

Deze opdracht is handig bij het kopiëren van grote bestanden.