copie e substitua as pastas para outro caminho mais rápido - linux bash

1

Eu tenho três pastas: core , projeto e mesclagem com muitos arquivos internos. Desejo excluir todos os arquivos e pastas (incluindo arquivos de ponto) da pasta mesclagem e, em seguida, copiar todos os arquivos (incluindo arquivos de ponto) da pasta core para > mesclar pasta, bem como mesclar todos os arquivos na pasta project nos arquivos mesclar .

Situações

  1. Como posso remover todos os arquivos e pastas (incluindo arquivos de ponto) de pastas especiais, sem removê-los? ( rm -rf /path/to/folder/* não excluiu arquivos e pastas.)
  2. Qual é a maneira mais rápida de copiar (com e sem mesclar e substituir) todos os arquivos recursivamente da pasta especial para outra (incluindo arquivos de ponto)? ( tar -cf my.tar path/; tar -xf my.tar )

Estou usando o tar, mas há muitos arquivos e preciso de um modo mais rápido.

    
por sweb 18.05.2012 / 07:11

1 resposta

5

Exclusão

rm -r merge/* merge/.*
rm: "." and ".." may not be removed

Você pode ignorar com segurança esse aviso. Pessoalmente, eu provavelmente apenas rm -r merge e nuke o diretório em si.

Copiando

cp -r core/ merge/

... mas isso sobrescreverá o diretório de mesclagem.

cd core && find . -exec cp "{}" "../merge/{}" \;

Um pouco mais lento e difícil de escrever, mas funcional e não atrapalha o diretório pai.

Tudo de uma vez

rsync -av --delete core/ merge/
    
por 18.05.2012 / 07:17

Tags