Ich möchte die Attribute (Eigentümer, Gruppe, Zugriffssteuerungsliste, erweiterte Attribute usw.) eines Verzeichnisses in ein anderes kopieren, aber nicht den Verzeichnisinhalt selbst.
Das funktioniert nicht:
cp -v --attributes-only A B
cp: omitting directory `A'
Hinweis: Es muss nicht sein cp
.
filesystems
backup
file-copy
xattr
Grzegorz Wierzowiecki
quelle
quelle
-r
, daher werden Verzeichnisse ignoriert. Aber ich denke, Sie möchten nur die Attribute kopieren, nicht den Inhalt? Mir fallen nur hässliche Hacks ein. Beachten Sie auch, dassinstall
SELinux-Kontexte erhalten bleiben können.Antworten:
Nach einigem Ausprobieren in der Kommandozeile, glaube ich, habe ich die Antwort gefunden. Aber es ist keine
cp
verwandte Antwort.rsync -ptgo -A -X -d --no-recursive --exclude=* first-dir/ second-dir
Das macht:
Als Referenz
quelle
USAGE
Abschnitts derrsync(1)
Manpage erklärt.rsync -a -AX --include='*/' --exclude='*'
. Ich habe nicht getestet.quelle
--no-recursive
. Das Problem bei dieser Antwort ist, dass ACLs oder XATTRs nicht ausgeführt werden.-r
- rekursiv-f
- Macht-p
- Attribute erhalten: Modus, Besitz, Zeitstempelquelle
Ich verstehe nicht, weil es für andere zu funktionieren scheint, aber die rsync-Methode schlägt für mich unter FreeBSD mit ZFS fehl. Nichts passiert. Die Methode von Jean-François Dockes funktioniert jedoch. (Siehe: https://www.lesbonscomptes.com/pxattr/ ) Quellverzeichnis = A & Zielverzeichnis = B, aus der ursprünglichen Frage.
(Bearbeiten Sie die erste Zeile von tmp.EAs, um das Verzeichnis A in B, s / A / B / zu ändern.)
quelle
pyxattr
und ich habe es auch versucht. Dies war eine Art harte Nuss zu knacken. Angeblich funktioniert gnu cp dafür, aber ich kann es nicht schaffen. Erweiterte Attribute verdienen es besser. Außerdem funktioniert pxattr zumindest unter Linux, OSX und BSD.Dabei ist dst_dir ein Zielverzeichnis. Oder:
Dabei ist dst_dir - ein Verzeichnis, das das Zielverzeichnis enthält, oder ein nicht vorhandenes Zielverzeichnis.
Aus der rsync-Manpage:
quelle
Sie benötigen das "-r" zum Kopieren eines Verzeichnisses.
quelle
-r
impliziert das Kopieren aller Unterverzeichnisse und Dateien in ihnen ... Ich möchte nicht den gesamten Baum kopieren ... Ich möchte Attribute für nur ein und nur ein Verzeichnis kopieren - ohne den Inhalt zu beeinflussen.