Usando o comando cp no shell do linux, como copio um diretório inteiro para outro diretório?

3

Eu tenho um diretório, digamos, "trabalho": ~ / work / Este diretório tem algumas subpastas (d1, d2 ...) e arquivos nestas subpastas. Eu quero fazer uma cópia de backup na mesma pasta, então seria como: ~ / backup / work / No entanto, quando eu uso %código% a pasta "trabalho" não é copiada, apenas seus subfoders (então agora é ~ / backup / d1 ~ / backup / d2 ...) Alguma ideia de como fazer isso funcionar? Eu sou novo em shell, então estou sentindo falta de algo:)

    
por Vilmar 30.09.2012 / 22:53

4 respostas

2

cp não irá criar diretórios principais; quando ele vir um caminho que não existe, ele assumirá que será o novo nome do diretório sendo copiado.

Tente copiar em um diretório que já exista: mkdir work first e, em seguida, cp -r work backup .

    
por 30.09.2012 / 23:05
1

Tente

rsync -avz ./work ./backup
    
por 01.10.2012 / 05:34
0
cp -r ./work/ ./backup/

ou

cp -r ./work ./backup/work
    
por 30.09.2012 / 22:56
0
[max@localhost ~]$ mkdir aaa
[max@localhost ~]$ cd aaa
[max@localhost aaa]$ touch 1 2 3
[max@localhost aaa]$ mkdir bbb
[max@localhost aaa]$ touch 3 4 5
[max@localhost aaa]$ cd

Este é o conteúdo do diretório aaa

[max@localhost ~]$ ls -l aaa/
total 4
-rw-rw-r-- 1 max max    0 Oct 19 17:29 1
-rw-rw-r-- 1 max max    0 Oct 19 17:29 2
-rw-rw-r-- 1 max max    0 Oct 19 17:29 3
-rw-rw-r-- 1 max max    0 Oct 19 17:29 4
-rw-rw-r-- 1 max max    0 Oct 19 17:29 5
drwxrwxr-x 2 max max 4096 Oct 19 17:29 bbb

Para copiar qualquer diretório, use o comando cp -r ou cp -R ou cp --recursive

Aqui -r , -R , --recursive significa diretórios de cópia recursivamente

[max@localhost ~]$ cp -r aaa/ ccc/
[max@localhost ~]$ cd ccc/
[max@localhost ccc]$ ls -l
total 4
-rw-rw-r--  1 max max    0 Oct 19 17:30 1
-rw-rw-r--  1 max max    0 Oct 19 17:30 2
-rw-rw-r--  1 max max    0 Oct 19 17:30 3
-rw-rw-r--  1 max max    0 Oct 19 17:30 4
-rw-rw-r--  1 max max    0 Oct 19 17:30 5
drwxrwxr-x  2 max max 4096 Oct 19 17:30 bbb

Aqui, o conteúdo do diretório aaa é copiado para o diretório ccc , incluindo os arquivos e o conteúdo do sub-diretório.

    
por 19.10.2012 / 14:07

Tags