Ich suche den Unterschied zwischen cp -r
und cp -a
. Was bedeutet "rekursiv" beim Kopieren von Dateien aus einem Ordner?
Ich suche den Unterschied zwischen cp -r
und cp -a
. Was bedeutet "rekursiv" beim Kopieren von Dateien aus einem Ordner?
Antworten:
Rekursiv bedeutet, dass cp
der Inhalt von Verzeichnissen kopiert wird. Wenn ein Verzeichnis Unterverzeichnisse enthält, werden diese auch (rekursiv) kopiert. Ohne überspringt -R
der cp
Befehl Verzeichnisse. -r
ist identisch mit -R
unter Linux, unterscheidet sich in einigen Randfällen von einigen anderen Unix-Varianten.
Erstellt standardmäßig cp
eine neue Datei mit demselben Inhalt wie die alte Datei und denselben Berechtigungen, die jedoch durch die umask eingeschränkt werden . Die Kopie ist vom Zeitpunkt der Kopie an datiert und gehört dem Benutzer, der die Kopie erstellt. Mit dieser -p
Option hat die Kopie dieselbe Änderungszeit, dieselbe Zugriffszeit und dieselben Berechtigungen wie das Original. Es hat auch denselben Eigentümer und dieselbe Gruppe wie das Original, wenn der Benutzer, der die Kopie erstellt, die Berechtigung zum Erstellen solcher Dateien hat.
Die -a
Option bedeutet -R
und -p
sowie einige andere Aufbewahrungsoptionen. Es wird versucht, eine möglichst originalgetreue Kopie zu erstellen: gleicher Verzeichnisbaum, gleicher Dateityp, gleicher Inhalt, gleiche Metadaten (Zeiten, Berechtigungen, erweiterte Attribute usw.).
-r
weil -a
(für a
rchive) immer das sicherste ist und wahrscheinlich das, was Sie erwartet haben.
-r
ist, dass Sie eine andere Unix-Variante als Linux verwenden, die diese nicht hat -a
, und im Allgemeinen verwenden würden cp -rp
. Oder rsync -a
.
Die Option -r oder -R für "rekursiv" bedeutet, dass alle Dateien einschließlich der Dateien in Unterordnern kopiert werden.
Die aufgelistete Option -a ist mit -dR identisch. Dies bedeutet, dass Verknüpfungen beibehalten und der Inhalt von Unterverzeichnissen kopiert werden. Wenn Links erhalten bleiben, folgt dies nicht den Links, da sie rekursiv kopiert werden.