Comandos cp e mv – Como copiar e mover arquivos no Linux
Comandos cp e mv – Como copiar e mover arquivos no Linux
Estudaremos neste artigo o uso de dois comandos muito úteis para gerenciamento de arquivos no Linux: cp e mv.
Comando cp
Permite copiar arquivos ou diretórios para outro local.
Se o destino fornecido for o nome de um diretório existente, os arquivos serão copiados para esse diretório, com o mesmo nome. Caso indiquemos um nome de arquivo no caminho de destino, o arquivo de origem será copiado e essa cópia renomeada também.
Sintaxe
$ cp [opções] arquivos_origem local_destino
Opções mais comuns
-i, –interactive
Pergunta se desejamos sobrescrever um arquivo de destino já existente.
-l, –link
Cria hard links para os arquivos em vez de copiá-los.
-n, –no-clobber
Não sobrescrever um arquivo já existente
-p
Preserva as permissões originais do arquivo, incluindo proprietário, grupo, stuid, setgid, tempos da última modificação e acesso.
-r, -R, –recursive
Copia diretórios de forma recursiva.
-s, –symbolic-link
Cria links simbólicos (symlinks) para os arquivos em vez de copiá-los
-u, –update
Copia apenas quando os arquivos de origem forem mais novos que os de destino, ou quando os arquivos de destino estiverem faltando.
-v, –verbose
Modo verboso; explica o que está sendo feito no momento.
–help
Mostra a ajuda básica do comando e sai.
–version
Mostra informações sobre a versão do comando e sai.
Exemplos
1. Copiar o arquivo passwd do diretório /etc para o diretório /home/fabio/.
$ cp /etc/passwd /home/fabio/
Caso o diretório de trabalho atual já seja o /home/fabio, podemos também usar o ponto (.) para indicá-lo como local de destino, como a seguir:
$ cp /etc/passwd .
2. Copiar o arquivo passwd do diretório /etc/ para o diretório /home/fabio/ renomeando a cópia como usuarios.txt:
$ cp /etc/passwd /home/fabio/usuarios.txt
3. Copiar todos os arquivos cujo nome se inicia com a letra l do diretório /lib/ para o diretório atual:
$ cp /lib/l* .
4. Criar um link simbólico no diretório atual para o arquivo /etc/group:
$ cp -s /etc/group .
5. Fazer uma cópia de backup de um arquivo no mesmo diretório, com outro nome (muito útil quando precisamos alterar arquivos de configuração do sistema):
$ cp passwd passwd.bkp
6. Copiar o diretório /home/fabio/Documentos e todo o seu conteúdo recursivamente para o diretório /home/fabio/backup/:
$ cp -r /home/fabio/Documentos /home/fabio/backup/
Comando mv
O comando mv pode ser usado para mover ou renomear arquivos.
Sintaxe
$ mv [opções] arquivos_origem local_destino
Opções principais
-b, –backup
Cria um backup de cada arquivo de destino existente.
-f, –force
Apaga destinos existentes sem perguntar ao usuário.
-i, –interactive
Pergunta se desejamos sobrescrever um arquivo de destino já existente.
-n, –no-clobber
Não sobrescrever um arquivo já existente
-u, –update
Move apenas quando os arquivos de origem forem mais novos que os de destino, ou quando os arquivos de destino estiverem faltando.
-v, –verbose
Modo verboso; explica o que está sendo feito no momento.
–help
Mostra a ajuda básica do comando e sai.
–version
Mostra informações sobre a versão do comando e sai.
Exemplos
1. Mover o arquivo passwd do diretório atual para o subdiretório Documentos:
$ mv passwd ./Documentos/
2. Mover o arquivo passwd do diretório atual para o subdiretório Documentos, o qual já contém um arquivo com o mesmo nome – nesse caso, queremos fazer um backup do arquivo de destino:
$ mv --backup passwd ./Documentos/
Neste caso o arquivo de backup criado tem o caractere ~ (til) no final de seu nome.
3. Também podemos renomear arquivos com o uso do comando mv. Vamos renomear o arquivo curriculum.odt para curriculum.txt:
$ mv curriculum.odt curriculum.txt
Veja que não indicamos um destino diferente – mandamos mover o arquivo para o próprio local de origem, apenas trocando seu nome.
Existem muitos outros comandos muito úteis para lidarmos com arquivos no Linux, como comandos para excluir, criar e copiar, os quais estudaremos nas próximas lições.
como copio as informações (nome, tamanho, permissões etc) de todos os arquivos do diretório /etc para um arquivo qualquer, exemplo.txt
Você pode listar e aí redirecionar tudo para um arquivo txt.
ls -lh > arquivo.txt
Se vc quiser infos específicas, ex só quer permissões, nome e tamanho, você pode usar: (substitua -f pelas colunas que você desejar)
ls -lh | tail -n +2 | tr -s ‘ ‘ | cut -d ‘ ‘ -f1,5,9 > arquivo.txt