Eine Idee zu cp: Zyklus erkannt: Fehler bei Solarenergie. Ich erhalte dies, während ich Daten von einem Verzeichnis in ein anderes Verzeichnis kopiere.
Antworten
Zu viele Anzeigen?Bei einer rekursiven Kopie wird dieselbe "Datei" zweimal besucht. Dies kann durch zirkulär angelegte Verknüpfungen verursacht werden. Wenn Sie zum Beispiel das Verzeichnis level1
:
mkdir level1
dann symbolisch eine Datei darunter verlinken à dieses Verzeichnis:
cd level1
ln -s . level2
endet man im Grunde mit einem Zirkelbezug. Das heißt, Sie können das tun:
cd level2/level2/level2/...
nach Herzenslust und verlassen Sie niemals die level1
Verzeichnis. Dies führt bei einer rekursiven Kopie zu Problemen, da es sich effektiv um eine Endlosschleife handeln würde.
Sie können verwenden cp -rH
o cp -rP
(unter Solaris 10 und höher, glaube ich), um den Symlinks nicht zu folgen.
Im Einzelnen gibt es drei Flaggen, die Sie interessieren könnten:
-
-H
: Wenn der Operand source_file ein symbolischer Link ist, dann kopiert cp die Datei, auf die der symbolische Link für den Operanden source_file verweist. Alle anderen symbolischen Links, die während der Durchquerung einer Dateihierarchie angetroffen werden, bleiben erhalten. Das heißt, wenn die Datei bzw. das Verzeichnis, das Sie als Quelle angeben, ein Link ist, wird auch das Ziel dieses Links kopiert. Alle symbolischen Links unterhalb dieser Quelle werden nicht verfolgt. -
-L
: Kopiert Dateien, die durch symbolische Links referenziert werden. Symbolische Links, die bei der Durchquerung einer Dateihierarchie gefunden werden, bleiben nicht erhalten. Dies folgt allen symbolischen Links unter der Quelle. -
-P
: Kopiert symbolische Links. Symbolische Links, die bei der Durchquerung einer Dateihierarchie auftreten, bleiben erhalten. Ich denke, dies ist identisch mit-H
sondern behält auch den symbolischen Link für die spezifische Quelle bei.