Copiando uma árvore com modos

1

Suponha que meu script de criação crie algo como:

build
├── [drwxr-xr-x pskocik  pskocik ]  bin
│   └── [-rwxr-xr-x pskocik  pskocik ]  FOO_bin
├── [drwxr-xr-x pskocik  pskocik ]  include
│   ├── [drwxr-xr-x pskocik  pskocik ]  FOO
│   │   ├── [-rw-r--r-- pskocik  pskocik ]  FOO_a.h
│   │   └── [-rw-r--r-- pskocik  pskocik ]  FOO_b.h
│   └── [-rw-r--r-- pskocik  pskocik ]  FOO.h
├── [drwxr-xr-x pskocik  pskocik ]  lib
│   ├── [-rw-r--r-- pskocik  pskocik ]  libFOO.a
│   └── [-rwxr-xr-x pskocik  pskocik ]  libFOO.so
└── [drwxr-xr-x pskocik  pskocik ]  share
    └── [drwxr-xr-x pskocik  pskocik ]  man
        ├── [drwxr-xr-x pskocik  pskocik ]  man1
        │   └── [-rw-r--r-- pskocik  pskocik ]  FOO.1.gz
        └── [drwxr-xr-x pskocik  pskocik ]  man3
            └── [-rw-r--r-- pskocik  pskocik ]  FOO.3.gz

8 directories, 8 files

Qual é a melhor maneira de copiar isso, digamos, em /usr ou /usr/local , para que

  • os arquivos são encaminhados para root: root
  • Os modos de arquivo
  • permanecem inalterados
  • o mesmo se aplica aos nós de diretório, a menos que (opcional) já existam (nesse caso, suas propriedades e modos permanecem os mesmos)

?

    
por PSkocik 23.06.2017 / 12:31

1 resposta

2

Use o rsync.

rsync -rltpDvh --chown root:root build/ /usr/

Isso significa:

  • r : recursivo
  • l : copiar links
  • t : preservar registros de data e hora
  • p : preservar permissões
  • D : --devices
  • v : verboso
  • h : progresso legível por humanos

Se você não o tiver instalado, use seu gerenciador de pacotes primeiro para instalar esta ferramenta maravilhosa:)

Itens relacionados:

por 23.06.2017 / 12:49