Quiero copiar los atributos (propiedad, grupo, ACL, atributos extendidos, etc.) de un directorio a otro, pero no el contenido del directorio en sí.
Esto no funciona:
cp -v --attributes-only A B
cp: omitting directory `A'
Nota: no tiene que ser así cp
.
filesystems
backup
file-copy
xattr
Grzegorz Wierzowiecki
fuente
fuente
-r
, por lo que ignora los directorios. Pero supongo que quieres copiar solo los atributos, no los contenidos. Solo puedo pensar en hacks feos. También tenga en cuenta queinstall
puede preservar contextos SELinux.Respuestas:
Después de bastante prueba y error en la línea de comandos, creo que he encontrado la respuesta. Pero no es una
cp
respuesta relacionada.rsync -ptgo -A -X -d --no-recursive --exclude=* first-dir/ second-dir
Esto hace:
Para referencia
fuente
USAGE
sección de larsync(1)
página del manual.rsync -a -AX --include='*/' --exclude='*'
. No he probadofuente
--no-recursive
. El problema con esta respuesta es que no hace ACL o XATTR.-r
- recursivo-f
- fuerza-p
- preservar atributos: modo, propiedad, marcas de tiempofuente
No entiendo porque parece funcionar para otros, pero el método rsync me falla en FreeBSD con ZFS. No pasa nada. Sin embargo, el método de Jean-François Dockes funciona. (ver: https://www.lesbonscomptes.com/pxattr/ ) Directorio de origen = A y directorio de destino = B, de la pregunta original.
(edite la primera línea de tmp.EAs para cambiar el directorio A a B, s / A / B /)
fuente
pyxattr
y lo intenté también. Era una especie de nuez difícil de roer. Supuestamente gnu cp funciona para esto, pero no puedo hacer que funcione. Los atributos extendidos merecen algo mejor que esto. Además, pxattr funciona al menos en linux, osx y bsd.donde dst_dir: es un directorio de destino. O:
donde dst_dir: es un directorio que contiene el directorio de destino o un directorio de destino no existente.
Desde la página del manual de rsync:
fuente
Necesita el "-r" para copiar un directorio.
fuente
-r
implica la copia de todos los subdirectorios y archivos en ellos ... No quiero copiar todo el árbol ... Quiero copiar atributos para un solo directorio, sin afectar su contenido.