Como clonar / copiar todos os atributos de arquivo / diretório em um arquivo / diretório diferente?

12

Eu quero copiar os atributos (propriedade, grupo, ACL, atributos estendidos, etc.) de um diretório para outro, mas não o próprio conteúdo do diretório.

Isso não funciona:

cp -v --attributes-only A B
cp: omitting directory 'A'           

Observação: não precisa ser cp .

    
por Grzegorz Wierzowiecki 29.07.2012 / 20:14

5 respostas

12

Depois de um pouco de tentativa e erro na linha de comando, acho que encontrei a resposta. Mas não é uma resposta cp .

rsync -ptgo -A -X -d --no-recursive --exclude=* first-dir/ second-dir

Isso faz:

-p, --perms                 preserve permissions
-t, --times                 preserve modification times
-o, --owner                 preserve owner (super-user only)
-g, --group                 preserve group
-d, --dirs                  transfer directories without recursing
-A, --acls                  preserve ACLs (implies --perms)
-X, --xattrs                preserve extended attributes
    --no-recursive          disables recursion

Para referência

    --no-OPTION             turn off an implied OPTION (e.g. --no-D)
-r, --recursive             recurse into directories
    
por 31.07.2012 / 18:20
0
chmod --reference=first-dir second-dir
    
por 29.11.2012 / 16:23
0
cp -rfp from_dir to_dir
  • -r - recursivo
  • -f - force
  • -p - preservar atributos: modo, propriedade, timestamps
por 04.07.2014 / 15:36
0

Eu não entendo porque parece funcionar para os outros, mas o método rsync falha para mim no FreeBSD com o ZFS. Nada acontece. No entanto, o método de Jean-François Dockes funciona. (consulte: link ) Diretório de origem = A & diretório de destino = B, da pergunta original.

pxattr -lR A > tmp.EAs

(edite a primeira linha do tmp.EAs para alterar o diretório A para B, s / A / B /)

pxattr -S tmp.EAs
    
por 13.10.2018 / 18:53
-3

Você precisa do "-r" para copiar um diretório.

    
por 29.07.2012 / 21:59