Como cp a pasta, não apenas o conteúdo da pasta?

1

Digamos que eu tenha uma estrutura de pastas assim:

/parentFolder/
  folder1/
    folder1.1/
      file1
  folder2/
    file2

Como faço para copiar a pasta2 dentro da pasta1.1 para que o arquivo2 também esteja em

/parentFolder/folder1/folder1.1/folder2/file2

ie para que a estrutura da pasta seja assim:

/parentFolder/
  folder1/
    folder1.1/
      folder2/
        file2
      file1
  folder2/
    file2

?

Se eu for apenas cp -R /parentFolder/folder2 /parentFolder/folder1/folder1.1 , copie o conteúdo da pasta2, mas também quero copiar a pasta2.

Pergunta relacionada: a resposta também se aplica a mv ?

    
por hobbes3 28.01.2012 / 22:42

3 respostas

6

cp -R parentFolder/folder2 parentFolder/folder1/folder1.1/folder2

    
por 28.01.2012 / 22:49
1

Eu prefiro usar rsync para esse tipo de ação. Além de copiar os arquivos, ele pode copiar as permissões e melhorar a velocidade de transferência em relação ao cp convencional.

O / no destino é crucial para sua necessidade.

Tente algo como:

rsync -aHSv /parentFolder/folder2 /parentFolder/folder1/
    
por 29.01.2012 / 06:49
1

Qual cp você está usando? As ferramentas do UNIX são semelhantes entre sistemas diferentes, mas podem se comportar de maneira diferente em algumas situações.

GNU cp tem o comportamento que você deseja. O BSD cp tem o comportamento que você descreve. Tente remover a barra do primeiro argumento e escreva:

cp -R /parentFolder/folder2 /parentFolder/folder1/folder1.1

em vez de:

cp -R /parentFolder/folder2/ /parentFolder/folder1/folder1.1

De acordo com a wikipedia (1) , é assim que o BSD cp faz o que você quer.

    
por 28.01.2012 / 23:04