Ich habe Eclipse-Projekte und ".project" -Datei in ihnen, die Verzeichnisstruktur sieht aus wie " myProject/.project
". Ich möchte diese '.project'-Dateien in ein anderes Verzeichnis kopieren, aber ich möchte, dass der Name des umschließenden Verzeichnisses erhalten bleibt.
Nehmen wir an, ich habe ' a/myProject/.project
', ich möchte ' myProject/.project
' nach ' b
' kopieren , also ist es ' b/myProject/.project
', aber ' b/myProject
' existiert nicht. Wenn ich ein probiere:
cp -r ./myProject/.project ../b
Es kopiert nur die '.project'-Datei ohne das' myProject'-Verzeichnis. Bitte beraten.
Zuerst verwenden
mkdir -p
, um den Zielordner mit der rekursiven Erstellung eines übergeordneten Pfads zu erstellen. Kopieren Sie dann den Inhalt in den Zielordner:quelle
Siehe
man cp
für weitere Informationen.quelle
Ich benutze cpio in kombination mit find. Erklärung hier .
Beispiel für Ihren Anwendungsfall:
Dieser Befehl findet alle Dateien in
/a/myProject/.project/
und kopiert alle darin enthaltenen Dateien unter Beibehaltung des Pfads.quelle
Zusätzlich dazu
--parents
muss eine-r
Option hinzugefügt werden, um zu vermeiden, dass die Kopie des innersten Verzeichnisses ausgelassen wirdDer Befehl, der für mich funktioniert, ist also
quelle
Bitte beachten Sie, dass es einen Bug in zu geben scheint
cp --parents
. Wenn ich--parents
zusammen mit verwendete--preserve=all
, wurden die Datums- und Zeitattribute einiger Zielverzeichnisse NICHT beibehalten.Der folgende Link scheint zu bestätigen, dass dies ein Fehler ist: Fehler # 8767: cp: --preserve = alles funktioniert nicht für die Eltern, wenn --parent verwendet wird .
Es sieht also so aus, als ob Sie sich nicht darauf verlassen können, dass Attribute beibehalten werden, wenn Sie
--parents
zusammen mit wie--preserve=all
oder verwenden-p
.quelle
Ich habe mich
--parents
an dencp
Befehl gehalten und perfekt mit mir gearbeitet. Für weitere Details benutzen Sie immer das Handbuch. Danke.quelle