Unix - copia o conteúdo de um diretório para outro [fechado]

90
Folder1/
    -fileA.txt
    -fileB.txt
    -fileC.txt

> mkdir Folder2/

> [copy command]

E agora Folder2/parece:

Folder2/
    -fileA.txt
    -fileB.txt
    -fileC.txt   

Como fazer isso acontecer? Eu tentei, cp -r Folder1/ Folder2/mas acabei com:

Folder2/
    Folder1/
        -fileA.txt
        -fileB.txt
        -fileC.txt

O que está perto, mas não exatamente o que eu queria.

Obrigado!

JDS
fonte

Respostas:

124

Experimente isto:

cp Folder1/* Folder2/
Geoff
fonte
3
mas isso não copia arquivos ocultos, certo?
Fabrizio Regini
9
Corrigir. cp -Rirá, mas irá copiar recursivamente, então você pode ou não querer usar isso. Você pode fazer cp Folder1/.* Folder2/para copiar apenas os arquivos ocultos.
Geoff
1
Observe que isso falhará se você estiver usando "sudo" ou um equivalente e o diretório contiver muitos arquivos. Eu entendosudo: unable to execute /bin/cp: Argument list too long
Nathan Osman,
observe que SCP tem uma sintaxe ligeiramente diferente, veja aqui: stackoverflow.com/a/26346339/1984636
sivi
Não faça isso. Execute "cp -rT src dest" no Linux ou "cp -R src / dest" no BSD.
xpusostomos
47

Muito simples, com um *caractere curinga.

cp -r Folder1/* Folder2/

Mas de acordo com seu exemplo, a recursão não é necessária, então o seguinte será suficiente:

cp Folder1/* Folder2/

EDITAR:

Ou pule a mkdir Folder2parte e apenas execute:

cp -r Folder1 Folder2
Koen.
fonte
Se ls | sort -k1.5 | head -8 > folder1então como fazer isso?
Pooja
Você acabou de perder todos os seus arquivos ocultos. Não faça isso. Execute "cp -rT src dest" no Linux ou "cp -R src / dest" no BSD.
xpusostomos
23

Para fazer uma cópia exata, permissões, propriedade e todos, use "-a" com "cp". "-r" copiará o conteúdo dos arquivos, mas não necessariamente manterá as outras coisas iguais.

cp -av Source / * Dest /

(certifique-se de que Dest / existe primeiro)

Se você deseja atualizar repetidamente de um para o outro ou certificar-se de também copiar todos os dotfiles, rsyncé uma grande ajuda:

rsync -av --delete Source / Dest /

Isso também é "recuperável", pois você pode reiniciá-lo se abortá-lo durante a cópia. Eu gosto de "-v" porque permite que você observe o que está acontecendo, mas você pode omiti-lo.

Brian White
fonte
1
para que serve -v?
HattrickNZ
verboso, apenas para observar o que está acontecendo.
Brian White
1
Se você tiver muitos arquivos, a -vopção pode levar algum tempo. Se você não precisa da saída, use -aapenas.
Eyal Levin
1
Você teria que estar executando uma conexão de rede bem lenta para que a cópia fosse retardada pela saída de texto. E, mesmo assim, provavelmente seria apenas o retorno do prompt de comando, não a cópia em si.
Brian White
Você perdeu seus arquivos ocultos. Execute "cp -rT src dest" no Linux ou "cp -R src / dest" no BSD.
xpusostomos