logo

cp-Befehl unter Linux/Unix | Linux-Kopierdatei

„cp“ bedeutet kopieren. Der Befehl „cp“ wird zum Kopieren einer Datei oder eines Verzeichnisses verwendet.

Einführung in den cp-Befehl

Der Befehl cp wird zum Kopieren von Verzeichnissen und Dateien verwendet. Der Befehl enthält drei primäre Betriebsmodi, die durch die dem Programm angezeigten Argumenttypen dargestellt werden, um eine Datei in andere Dateien, mehrere Dateien in ein beliebiges Verzeichnis oder das gesamte Verzeichnis in andere Verzeichnisse zu kopieren.

Darüber hinaus akzeptiert das Dienstprogramm mehrere Befehlszeilenoptionsflags zur detaillierten Beschreibung der implementierten Vorgänge. Die beiden Hauptspezifikationen sind GNU cp und POSIX cp. GNU cp enthält verschiedene zusätzliche Optionen in der POSIX-Version. Der Befehl ist auch in der EFI-Shell verfügbar.

Betriebsarten des cp-Befehls

Der cp-Befehl enthält drei primäre Betriebsmodi. Diese Modi werden durch die Anzahl und Art der Argumente vervollständigt, die dem Programm beim Aufruf angezeigt werden.

  • Das Programm kann den Inhalt der ersten Datei in die zweite Datei kopieren und so die zweite Datei bei Bedarf erstellen, wenn das Programm zwei Pfadnamensargumente zu Dateien enthält.
  • Das Programm kann alle Quelldateien in das gewünschte Verzeichnis kopieren und alle Dateien, die noch nicht verfügbar sind, verfügbar machen, wenn das Programm ein oder mehrere Pfadnamensargumente von Dateien enthält und diese als Pfadargument zu einem Verzeichnis verfolgt.
  • Der Befehl cp kann jede Datei im Quellverzeichnis in das gewünschte Verzeichnis kopieren und so alle Verzeichnisse oder Dateien erforderlich machen, wenn die Argumente des Programms die Pfadnamen für zwei Verzeichnisse sind. Dieser Betriebsmodus benötigt ein zusätzliches Optionsflag, um das Kopieren des rekursiven Verzeichnisses darzustellen. Die Quelle wird in das Ziel kopiert, während ein neues Verzeichnis erstellt wird, wenn das Ziel nicht existiert und das Zielverzeichnis bereits verfügbar ist.

Optionen des cp-Befehls

Möglichkeit Beschreibung
--archive, -a Es entspricht -dR --preserve=all.
--attributes-only Es kopiert nicht die Daten der Datei, sondern nur die Attribute.
-B Es ist wie ein Backup, akzeptiert aber keine Argumente.
--backup[=CONTROL] Es erstellt ein Backup aller vorhandenen Zieldateien.
--copy-contents Wenn es rekursiv ist, kopiert es spezielle Dateiinhalte.
-D Es entspricht --no-deference --preserve=links.
--force, -f Wenn eine vorhandene Zieldatei nicht geöffnet werden kann, löschen Sie sie und versuchen Sie es erneut (diese Option wird vermieden, wenn auch das Flag -n verwendet wird).
--interaktiv, -i Es fragt vor dem Überschreiben nach einer Bestätigung (überschreibt das vorherige Flag -n).
-H In SOURCE folgt es den symbolischen Befehlszeilenlinks.
--link, -l Es spezifiziert Hard-Link-Dateien statt Kopieren.
--dereferenz, -L In SOURCE folgt es immer symbolischen Links.
--no-clobber, -n Es überschreibt keine vorhandene Datei (überschreibt das Flag -i).
--no-dereferenz, -P In SOURCE folgt es niemals symbolischen Links.
-P Es entspricht --preserve=mode, timestamps,ownership.
--preserve[=ATTR_LIST] Die beschriebenen Attribute bleiben erhalten. Wenn möglich zusätzliche Attribute: all, xattr, links, context.
--no-preserve=ATTR_LIST Die beschriebenen Attribute bleiben nicht erhalten.
--Eltern Unter dem Verzeichnis wird der vollständige Name der Quelldatei verwendet.
--recursive, -r, -R Es kopiert Verzeichnisse rekursiv.
--reflink[=WANN] Es kontrolliert CoW-/Klonkopien.
--remove-destination Es entfernt alle vorhandenen Zieldateien, bevor versucht wird, sie zu öffnen (im Gegensatz zu --force).
--sparse=WANN Es steuert die Erstellung von Sparse-Dateien.
--string-trailing-slashes Es entfernt die abschließenden Schrägstriche aus allen SOURCE-Argumenten.
--symbolic-link, -s Es erstellt symbolische Links statt zu kopieren.
--suffix=SUFFIX, -S Es überschreibt das allgemeine Backup-Suffix.
--target-directory=VERZEICHNIS, -t Es kopiert jedes SOURCE-Argument in DIRECTORY.
--no-target-directory, -T Es betrachtet DEST als eine allgemeine Datei.
--update, -u Es wird kopiert, wenn die SOURCE-Datei im Vergleich zur Zieldatei neuer ist oder wenn die Zieldatei nicht angegeben ist.
--verbose, -v Es gibt an, was getan wird.
--one-file-system, -x Es bleibt im Dateisystem.
-MIT Es setzt den SELinux-Sicherheitskontext der Zieldatei auf den Standardtyp.
--context[=CTX] Es ist dasselbe wie -Z, oder wenn CTX erwähnt wird, setzt es den SMACK- oder SELinux-Sicherheitskontext auf CTX.
--helfen Es zeigt das Hilfemenü an und wird beendet.
--Ausführung Es enthält Versionsdetails und Exits.

Die SOURCE-Dateien mit geringer Dichte werden durch eine kostengünstige Heuristik gefunden, und die zugehörige DESR-Datei wird standardmäßig mit geringer Dichte erstellt. Es ist das Verhalten, das von gewählt wird --sparse=auto . Wir können beschreiben --sparse=immer um eine DEST-Datei mit geringer Dichte zu erstellen, wenn die SOURCE-Datei eine ausreichend lange Reihenfolge von Null Bytes enthält. Wir können uns auch bewerben --sparse=nie um die Erstellung von Dateien mit geringer Dichte einzuschränken.

Wenn --reflink[=immer] wird erwähnt, implementieren Sie eine leichte Kopie, bei der die Datenblöcke nur kopiert wurden, wenn sie geändert wurden. Wenn es nicht möglich ist oder --reflink=auto erwähnt wird, schlägt die Kopie fehl und es wird auf die Standardkopie zurückgegriffen. Wir können uns auch bewerben --reflink=nie um sicherzustellen, dass eine Standardkopie implementiert wird.

Um eine Datei in dasselbe Verzeichnis zu kopieren, lautet die Syntax:

 cp 

Linux-Datei vgl

Im obigen Schnappschuss haben wir eine Kopie von erstellt 'Doku' und benannte es als 'neu' . Falls ja, (in unserem Fall ist es „newdocu“) bereits vorhanden ist, wird die frühere Datei einfach überschrieben.

Um eine Datei in ein anderes Verzeichnis zu kopieren

Wir müssen den Pfad des Zielverzeichnisses angeben.

Im Schnappschuss unten gibt es zuvor keine „Text“-Datei. Nachdem Sie den Befehl gegeben haben, 'Text' Die Datei wurde in das Zielverzeichnis kopiert „Desktop“ .

Linux-Datei vgl

Linux cp -r

Möglichkeit 'R' Mit dem Kopierbefehl kann ein Verzeichnis inklusive seines gesamten Inhalts von einem Quellverzeichnis in das Zielverzeichnis kopiert werden.

Syntax:

 cp -r 

Beispiel:

 cp -r library /home/sssit/Documents 

Linux cp -r

Im obigen Beispiel haben wir das Verzeichnis kopiert 'Bibliothek' in das Zielverzeichnis /home/sssit/Dokumente . Hier wurde der gesamte Inhalt des Verzeichnisses „Bibliothek“ einschließlich seiner Inhalte in das Zielverzeichnis kopiert.

Linux kopiert mehrere Dateien oder Verzeichnisse

Es können mehrere Dateien oder Verzeichnisse gleichzeitig in ein Zielverzeichnis kopiert werden. In diesem Fall muss das Ziel ein Verzeichnis sein. Zum Kopieren mehrerer Dateien können Sie verwenden Platzhalter (cp *.extension) mit demselben Muster.

Syntax:

 cp *. 

Beispiel:

 cp *.txt /home/sssit/Documents 

Linux kopiert mehrere Dateien

Im obigen Beispiel haben wir Dateien (Datei1, Datei2, Datei3) mit derselben Erweiterung kopiert '.txt' zum Verzeichnis „Dokumente“.

Linux cp --backup

Wenn die Datei, die Sie kopieren möchten, bereits im Zielverzeichnis vorhanden ist, können Sie mit diesem Befehl eine Sicherungskopie Ihrer vorhandenen Datei erstellen.

Syntax:

 cp --backup 

Beispiel:

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

Linux-Datei-CP-Sicherung

Wie Sie oben sehen können, 'file2.txt' existiert bereits im Zielverzeichnis. Daher haben wir eine Sicherungskopie dieser Datei erstellt und sie in dasselbe Verzeichnis (mit demselben Namen) kopiert.

Jetzt enthält unser Zielverzeichnis „Downloads“ zwei Dateien mit demselben Namen (das heißt „file2.txt“).

Linux cp -i

Mit der cp-Option „-i“ können Sie einmal bestätigen, bevor Sie Ihre Datei überschreiben.

Syntax:

mamta kulkarni
 cp -i 

Beispiel:

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

Linux cp -i

Wie Sie sehen, wird um Erlaubnis zum Überschreiben der Datei gebeten 'file3.txt' da diese Datei bereits im Zielverzeichnis vorhanden ist. Jetzt können Sie drücken Und Datei überschreiben und N Datei nicht überschreiben.

Linux cp -l

Wenn Sie einen festen Link zu einer Datei erstellen möchten, anstatt diese Datei zu kopieren, können Sie die Option „l“ verwenden.

Notiz: Beim Erstellen einer festen Verknüpfung der Datei bleibt die Inode-Nummer der beiden Dateien gleich. Beim Kopieren ändert sich die Inode-Nummer.

Syntax:

 cp -l 

Beispiel:

 cp -l file1.txt usr/ 

Linux-Datei cp -l

Beachten Sie hier, dass wir einen Hardlink der Datei erstellt haben 'file1.txt' In 'usr' . Die Inode-Nummer beider Dateien ist gleich.

Linux cp -p

Die cp-Option „-p“ wird verwendet, um die Eigenschaften und Attribute einer Datei beizubehalten. Sie können die ausgewählten Eigenschaften auch bei Bedarf beibehalten.

Syntax:

 cp -p 

Beispiel:

 cp -p file2.txt usr/ 

Linux cp -p

Jetzt können Sie die beiden Dateien (die ursprüngliche und die kopierte) im obigen Bild zuordnen, beide haben die gleichen Eigenschaften.

Linux cp -u -v

Der Befehl cp -u -v wird verwendet, wenn Sie sicherstellen möchten, dass die Zieldatei fehlt oder nicht vorhanden ist.

Syntax:

 cp -u -v 

Beispiel:

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

Linux cp -u -v

Im Bild oben sehen Sie, dass es zwei Dateien gibt 'Dusche' Und 'file1.txt' . Nun wollen wir diese beiden Dateien in das Verzeichnis „Download“ kopieren. Wir wissen jedoch nicht, dass im Verzeichnis „Downloads“ die Datei „file1.txt“ bereits vorhanden ist.

Den Befehl erteilen 'cp -u -v' kümmert sich automatisch um die bereits vorhandene Datei (file1.txt) und überschreibt sie nicht.

Dieser Befehl ist beim Kopieren großer Dateien nützlich.