Como copiar arquivos e diretórios em Linux
copiar arquivos e diretórios é uma das tarefas mais comuns que você vai executar ao trabalhar na linha de comandos. Existem vários comandos para copiar arquivos em Linux, com cp
e rsync
sendo as ferramentas mais amplamente utilizadas.
é prática comum usar o comando cp
para copiar ficheiros e rsync
para copiar directórios.
para poder copiar ficheiros e directórios, deverá ter pelo menos permissões de leitura no ficheiro de origem e permissões de escrita na pasta de destino.
copiar arquivos com o comando cp #
em sistemas operacionais Linux e Unix, o comando cp
é usado para copiar arquivos e diretórios.
O caso de utilização mais simples é copiar um ficheiro na pasta de trabalho actual. Por exemplo, para copiar um ficheiro chamado file.txt
para um ficheiro chamado file_backup.txt
na pasta actual, você iria executar o seguinte comando:
cp file.txt file_backup.txt
Se o ficheiro de destino existir, será substituído. Para obter uma linha de confirmação antes de substituir os arquivos, use a opção -i
.
cp -i file.txt file_backup.txt
por omissão, ao usar o comando cp
para copiar um ficheiro, o novo ficheiro será propriedade do utilizador que executa o comando. Use a opção-p
para preservar o modo de arquivo, propriedade e datas:
outra opção que pode ser útil é-v
. Ao usar esta opção, o comando imprime o que está a ser feito:
cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'
copie um ficheiro para uma pasta #
para copiar um ficheiro para uma pasta, indique a localização absoluta ou relativa da pasta. Quando a pasta de destino é omitida, o ficheiro é copiado para a pasta actual.
no exemplo seguinte, estamos a copiar o ficheiro file.txt
para o /backup
directório:
cp file.txt /backup
ao indicar apenas o nome da pasta como destino, o ficheiro copiado terá o mesmo nome que o ficheiro original.
Se você deseja copiar o arquivo com um nome diferente, você precisa especificar o nome do arquivo desejado:
cp file.txt /backup/new_file.txt
O comando acima irá copiar o arquivo para o diretório especificado como o new_file.txt
.
copiar vários ficheiros #
para copiar vários ficheiros e pastas de uma vez, indique os nomes dos ficheiros e pastas de origem seguidos com a pasta de destino como último argumento:
cp file.txt dir file1.txt file2.txt dir1
ao copiar vários ficheiros, o destino deve ser uma pasta.
o comando cp
também lhe permite usar a correspondência de padrões. Por exemplo, para copiar todos os .png
arquivos do diretório atual para o /backup
diretório, você usaria:
cp *.png /backup
Copiar Diretórios com o Comando cp #
Para copiar um diretório, incluindo todos os seus arquivos e subdiretórios, use o -R
ou -r
opção. No exemplo a seguir, estamos copiando o diretório Pictures
Pictures_backup
:
cp -R Pictures Pictures_backup
O comando acima irá criar o diretório de destino e recursivamente copie todos os arquivos e subdiretórios da origem para o diretório de destino.
Se a pasta de destino já existir, a própria pasta de origem e o seu conteúdo são copiados para a pasta de destino. Para copiar apenas os ficheiros e sub-pastas, mas não a pasta de destino, use a opção -T
:
cp -RT Pictures Pictures_backup
as opções utilizadas na cópia de ficheiros também podem ser usadas na cópia de pastas. A principal diferença é que ao copiar diretórios, você precisa usar a opção -R
.
copiar 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. Ele pode ser usado para copiar arquivos para locais locais e remotos.
rsync
inclui muitas opções que controlam todos os aspectos de seu comportamento
A opção mais útil é -a
que recursivamente os diretórios de cópia, transferência especiais e dispositivos de bloco e preservar links simbólicos, horas de modificação, de grupo, propriedade e permissões.
Para copiar um único arquivo a partir de um para outro local, você deve executar o seguinte comando:
rsync -a file.txt file_backup.txt
Se o arquivo de destino existe, rsync
irá substituí-lo.
o mesmo comando pode ser usado para copiar uma pasta:
rsync -a /var/www/public_html/ /var/www/public_html_backup/
rsync
ameaça as pastas de origem que terminam com uma barra final /
diferentemente. Se adicionar uma barra final na pasta de origem, o comando irá copiar apenas o conteúdo da pasta de origem para a pasta de destino. Quando a barra final é omitida, rsync
copiará a pasta de origem dentro da pasta de destino. A opção mais segura é sempre incluir a barra final /
no destino e na fonte.
Para saber mais sobre rsync
verifique os seguintes artigos:
- Como Usar o Rsync para Locais e Remotos, Transferência de Dados e Sincronização
- Como Excluir Arquivos e Diretórios com Rsync
Conclusão #
temos mostrado como copiar arquivos e diretórios no Linux e sistemas baseados em Unix, usando o cp
e rsync
utilitários.
Leave a Reply