Como você distingue um diretório e seu conteúdo no linux?

1

Digamos que você tenha essa árvore de diretórios

parent
   -----child1
           -----file0 
           -----grandchild1
                      -----file1
                      -----file2 
           -----grandchild2
                      -----file3
   -----child2

Agora, há duas coisas que preciso aprender a fazer

  1. Copie a pasta child1 para child2, para que haja um pai / filho2 / child1 / grancdhild1 / file1
  2. Copie o conteúdo da pasta child1 para child2, assim haverá parent / child2 / grancdhild1 / file1

Observe que o segundo não tem um "child1", no primeiro estamos copiando uma pasta para uma nova pasta, no segundo estamos copiando o conteúdo de uma pasta para outra pasta.

Se for importante, digamos que sua localização atual é pai.

Meu principal desafio aqui é copiar tudo (sub-diretórios, arquivos ocultos etc.)

    
por user893730 12.12.2011 / 23:42

3 respostas

3

Rsync para o resgate! : -)

Observe esse caractere de barra (ou sua ausência) no final do parâmetro 'child1'. Esta é a única diferença. Os comandos são executados em parent .

$ rsync -a child1 child2/

Resultado:

├── child1
│   ├── file0
│   ├── grandchild1
│   │   ├── file1
│   │   └── file2
│   └── grandchild2
│       └── file3
└── child2
    └── child1
        ├── file0
        ├── grandchild1
        │   ├── file1
        │   └── file2
        └── grandchild2
            └── file3

$ rsync -a child1/ child2/

Resultado:

├── child1
│   ├── file0
│   ├── grandchild1
│   │   ├── file1
│   │   └── file2
│   └── grandchild2
│       └── file3
└── child2
    ├── file0
    ├── grandchild1
    │   ├── file1
    │   └── file2
    └── grandchild2
        └── file3
    
por 13.12.2011 / 00:04
2

Assumindo que parent é o seu diretório de trabalho

Para fazer 1: cp -r child1 child2

Para fazer 2: cp -r child1/* child2

Existem diferentes implementações de cp no mundo * nix, mas -r switch deve funcionar. Verifique sua documentação para detalhes. Também dê uma olhada na opção -a no GNU cp .

    
por 13.12.2011 / 02:01
0

Para copiar filho1, você faria cp child1 child2/child1 . Para copiar o conteúdo de child1, você faria cp child1/* child2/* .

    
por 12.12.2011 / 23:45