Android

Como copiar arquivos e diretórios no linux

Comandos Básicos Linux 07 - cp (copiar arquivos) e rm (remover arquivos)

Comandos Básicos Linux 07 - cp (copiar arquivos) e rm (remover arquivos)

Índice:

Anonim

Copiar arquivos e diretórios é uma das tarefas mais comuns que você executará ao trabalhar na linha de comando. No Linux, existem vários comandos para copiar arquivos, sendo cp e rsync as ferramentas mais usadas.

É uma prática comum usar o comando cp ao copiar arquivos e o comando rsync ao copiar diretórios.

Para poder copiar arquivos e diretórios, você deve ter pelo menos permissões de leitura no arquivo de origem e permissão de gravação no diretório de destino.

Copiando arquivos com o comando cp

Nos sistemas operacionais Linux e Unix, o comando cp é usado para copiar arquivos e diretórios.

O caso de uso mais simples é copiar um arquivo no diretório de trabalho atual. Por exemplo, para copiar um arquivo chamado file.txt para o arquivo file_backup.txt no diretório atual, você deve executar o seguinte comando:

cp file.txt file_backup.txt

Se o arquivo de destino existir, ele será substituído. Para obter um prompt de confirmação antes de substituir os arquivos, use a opção -i .

cp -i file.txt file_backup.txt

Por padrão, ao usar o comando cp para copiar um arquivo, o novo arquivo será de propriedade do usuário que está executando o comando. Use a opção -p para preservar o modo de arquivo, a propriedade e os registros de data e hora:

cp -p file.txt file_backup.txt

Outra opção que pode ser útil é -v . Ao usar esta opção, o comando imprime o que está sendo feito:

cp -v file.txt file_backup.txt

'file.txt' -> 'file_backup.txt'

Copie um arquivo para um diretório

Para copiar um arquivo para um diretório, especifique o caminho absoluto ou relativo ao diretório. Se o diretório de destino for omitido, o arquivo será copiado para o diretório atual.

No exemplo a seguir, estamos copiando o arquivo file.txt para o diretório /backup :

cp file.txt /backup

Ao especificar apenas o nome do diretório como destino, o arquivo copiado terá o mesmo nome que o arquivo original.

cp file.txt /backup/new_file.txt

O comando acima copiará o arquivo para o diretório especificado como new_file.txt .

Copie vários arquivos

Para copiar vários arquivos e diretórios de uma só vez, especifique os nomes dos arquivos e diretórios de origem seguidos com o diretório de destino como o último argumento:

cp file.txt dir file1.txt file2.txt dir1

Ao copiar vários arquivos, o destino deve ser um diretório.

O comando cp também permite usar a correspondência de padrões. Por exemplo, para copiar todos os arquivos .png do diretório atual para o diretório /backup , você usaria:

cp *.png /backup

Copiando diretórios com o comando cp

Para copiar um diretório, incluindo todos os seus arquivos e subdiretórios, use a opção -R ou -r . No exemplo a seguir, estamos copiando o diretório Pictures para Pictures_backup :

cp -R Pictures Pictures_backup

O comando acima criará o diretório de destino e copiará recursivamente todos os arquivos e subdiretórios da origem para o diretório de destino.

Se o diretório de destino já existir, o próprio diretório de origem e todo o seu conteúdo serão copiados para o diretório de destino. Para copiar apenas os arquivos e subdiretórios, mas não os diretórios de destino, use a opção -T :

cp -RT Pictures Pictures_backup

As opções usadas ao copiar arquivos também podem ser usadas ao copiar o diretório. A principal diferença é que, ao copiar diretórios, você precisa usar a opção -R .

Copiando arquivos e diretórios com o comando rsync

rsync é um utilitário de linha de comando rápido e versátil que sincroniza arquivos e diretórios entre dois locais. Pode ser usado para copiar arquivos para locais locais e remotos.

rsync inclui várias opções que controlam todos os aspectos de seu comportamento. A opção mais útil é -a que copia diretórios recursivamente, transfere dispositivos especiais e de bloco, preserva links simbólicos, tempos de modificação, grupo, propriedade e permissões.

Para copiar um único arquivo de um para outro local, execute o seguinte comando:

rsync -a file.txt file_backup.txt

Se o arquivo de destino existir, o rsync o substituirá.

O mesmo comando pode ser usado para copiar um diretório:

rsync -a /var/www/public_html/ /var/www/public_html_backup/

rsync ameaça os diretórios de origem que terminam com uma barra final / diferente. Se você adicionar uma barra no diretório de origem, o comando copiará apenas o conteúdo do diretório de origem no diretório de destino. Quando a barra final é omitida, o rsync copia o diretório de origem dentro do diretório de destino. A opção mais segura é sempre incluir a barra final no destino e na origem.

Para saber mais sobre o rsync consulte os seguintes artigos:

Conclusão

Neste guia, mostramos como copiar arquivos e diretórios em sistemas baseados em Linux e Unix usando os utilitários cp e rsync .

terminal rsync cp