Estou tentando copiar o conteúdo de uma pasta para outra pasta em um diretório diferente usando o terminal.
Alguém seria capaz de me fornecer um exemplo da sintaxe da linha de comando necessária para conseguir isso?
Estou tentando copiar o conteúdo de uma pasta para outra pasta em um diretório diferente usando o terminal.
Alguém seria capaz de me fornecer um exemplo da sintaxe da linha de comando necessária para conseguir isso?
Respostas:
Você pode copiar o conteúdo de uma pasta /source
para outra pasta existente /dest
com o comando
cp -a /source/. /dest/
A -a
opção é uma opção recursiva aprimorada, que preserva todos os atributos do arquivo e também preserva os links simbólicos.
O .
final do caminho de origem é uma cp
sintaxe específica que permite copiar todos os arquivos e pastas, inclusive os ocultos.
cp -a ~/Downloads/textext/. ~/.config/inkscape/extensions/
-p
sinalizador para preservar as permissões e os carimbos de data e hora do arquivo. cp -ap /var/www/original.com/images/. /var/www/new.com/images/
-a
já implica --preserve=all
, é mais amplo que -p = --preserve=mode,ownership,timestamps
.
scp
é usado para copiar em uma rede (por ssh
) e criptografa apenas o canal de comunicação, não os arquivos no sistema de arquivos de destino.
Uma alternativa é rsync
rsync -r source/ destination
As vantagens do rsync são:
Após a sincronização inicial, ele copiará apenas os arquivos que foram alterados.
Você pode usá-lo em uma rede, conveniente para arquivos em $ HOME, especialmente arquivos de configuração.
rsync -r source/ destination
deve ser o suficiente, não?
rync source/ dest
obviamente as pessoas precisarão personalizar o comando rsync para funcionar como desejarem.
Digamos que você tenha uma pasta chamada folder1 no seu ~
, dentro da pasta1 existe um arquivo chamado file1 e 2 pastas chamadas sub1 e sub2, cada uma com outros arquivos e pastas dentro deles.
Para copiar todo o conteúdo de ~/folder1
para ~/new_folder1
você usaria
cp -r ~/folder1/. ~/new_folder1
new_folder1
conteria todos os arquivos e pastas de folder1
.
cp
é o comando para copiar usando um terminal, o -r
torna recursivamente (assim, o diretório atual + outros diretórios dentro da atual) ~/folder1
é a pasta de origem, ~/new_folder1
é a pasta de destino para os arquivos / pastas dentro da origem.
~/new_folder1/folder1
vez de copiar o conteúdo.
cp -r ~/folder1/* ~/new_folder1
[root@ home]# mkdir food [root@ home]# cd food/ [root@ food]# mkdir .fruit [root@ food]# mkdir veggies [root@ food]# touch veggies/carrots [root@ food]# touch .fruit/apple [root@ food]# ls * carrots [root@ food]#
Verifique este http://www.cyberciti.biz/faq/copy-folder-linux-command-line/ para obter mais informações sobre como copiar a pasta. Espero que isto ajude.
cp Command
cp
é um comando do Linux para copiar arquivos e diretórios. A sintaxe é a seguinte:
cp source destination
cp dir1 dir2
cp -option source destination
cp -option1 -option2 source destination
Neste exemplo, copie a /home/vivek/letters
pasta e todos os seus arquivos para o /usb/backup
diretório:
cp -avr /home/vivek/letters /usb/backup
Onde,
-a
: Preserve os atributos especificados, como diretório, modo de arquivo, propriedade, registro de data e hora, se possível, atributos adicionais: contexto, links, xattr, todos.
-v
: Explique o que está sendo feito.
-r
: Copie diretórios recursivamente. Exemplo
Copie uma pasta chamada / tmp / conf para / tmp / backup:
$ cp -avr /tmp/conf/ /tmp/backup
Copie o diretório dir_1 e seu conteúdo (_files_) no diretório dir_2 :
cp -r ./dir_1 ./dir_2
# or
cp -r ./dir_1/ ./dir_2/
# Results in: ./dir_2/dir_1/_files_
Copie o conteúdo (_files_) apenas de dir_1 no diretório dir_2 :
cp -r ./dir_1/. ./dir_2
# or
cp -r ./dir_1/. ./dir_2/
# Results in: ./dir_2/_files_*
_files_
é um espaço reservado para os arquivos reais localizados no diretório
Se houver duas pastas: (com permissão de gravação)
drwxr-xr-x 4 vimal vimal 4096 Sep 9 12:17 .
drwxr-xr-x 3 root root 4096 Aug 18 14:35 ..
drwxrwxrwx 6 vimal vimal 4096 Sep 9 12:15 DATA
drwxrwxrwx 7 vimal vimal 4096 Sep 9 12:15 PORTAL
Se você estiver dentro da pasta PORTAL, na qual deseja copiar todo o conteúdo de outra pasta, diga DATA no mesmo nível.
vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .
Você tem que notar 2 pontos. Último ponto diz copiar aqui na pasta atual
e
um seguinte / DATA /. diz que todo o conteúdo dentro da pasta DATA deve ser copiado e não a própria pasta DATA.
Se você remover este "" final. de / DATA /
a pasta DATA inteira será copiada dentro do PORTAL (de onde você está copiando).