Manipulando arquivos e diretórios
Esta aula ensina os comandos essenciais para manipular arquivos e diretórios no shell Linux, incluindo cp, mv, rm, mkdir, rmdir e touch, além de alertar sobre os cuidados necessários ao usar o comando rm.
Nesta aula, vamos aprender os comandos fundamentais para criar, copiar, mover, renomear e excluir arquivos e diretórios no terminal Linux. Esses comandos são usados diariamente por qualquer usuário de shell, então é importante dominá-los com segurança.
cp, mv, rm
Os comandos cp, mv e rm são usados para copiar, mover/renomear e remover arquivos, respectivamente.
cp (copy): copia um arquivo de um local para outro. Sintaxe: cp origem destino. Se o destino for um diretório, o arquivo é copiado para dentro dele com o mesmo nome. Use a opção -r para copiar diretórios recursivamente.
# Copiar arquivo.txt para /tmp/backup.txt
cp arquivo.txt /tmp/backup.txt
# Copiar um diretório recursivamente
cp -r meu_diretorio /tmp/mv (move): move ou renomeia arquivos/diretórios. Sintaxe: mv origem destino. Se o destino for um diretório existente, o arquivo é movido para dentro dele. Caso contrário, o arquivo é renomeado.
# Renomear arquivo.txt para novo.txt
mv arquivo.txt novo.txt
# Mover arquivo.txt para a pasta Documentos
mv arquivo.txt ~/Documentos/rm (remove): remove arquivos. Cuidado: a exclusão é permanente! Use a opção -r para remover diretórios recursivamente e -f para forçar a remoção sem confirmação.
# Remover um arquivo
rm arquivo.txt
# Remover um diretório vazio
rm -r diretorio_vazio
# Remover um diretório com conteúdo (forçado)
rm -rf diretorio_cheiomkdir e rmdir
mkdir (make directory): cria um ou mais diretórios. Use a opção -p para criar diretórios intermediários automaticamente.
# Criar um diretório chamado projetos
mkdir projetos
# Criar uma estrutura de diretórios aninhados
mkdir -p projetos/2025/janeirormdir (remove directory): remove diretórios vazios. Se o diretório não estiver vazio, o comando falha. Para remover diretórios com conteúdo, use rm -r.
# Remover um diretório vazio
rmdir projetos/2025/janeiro
# Tentar remover um diretório não vazio (falha)
rmdir projetos/2025 # erro: diretório não vaziotouch
O comando touch é usado principalmente para criar arquivos vazios ou atualizar a data de modificação de arquivos existentes.
# Criar um arquivo vazio chamado notas.txt
touch notas.txt
# Atualizar a data de modificação de um arquivo existente
touch notas.txt # atualiza timestamp para o momento atualSe o arquivo já existir, touch apenas altera a data de acesso e modificação para o momento atual, sem modificar o conteúdo.
Cuidados com rm
O comando rm é poderoso e perigoso, pois exclui arquivos permanentemente (não vai para a lixeira). Aqui estão algumas dicas de segurança:
- Sempre verifique o comando antes de executar, especialmente ao usar
rm -rf. - Use a opção
-i(interactive) para pedir confirmação antes de cada exclusão:rm -i arquivo. - Cuidado com curingas:
rm -rf *pode excluir tudo no diretório atual. Teste antes comls. - Evite usar
rm -rf /(nunca faça isso, a menos que queira danificar o sistema). - Considere usar aliases como
alias rm='rm -i'para adicionar proteção automática.
# Exemplo de exclusão segura com confirmação
rm -i arquivo_importante.txt
# Exemplo perigoso: exclui tudo recursivamente sem confirmação
rm -rf * # cuidado!Referências
- GNU Coreutils: cp
- GNU Coreutils: mv
- GNU Coreutils: rm
- GNU Coreutils: mkdir
- GNU Coreutils: rmdir
- GNU Coreutils: touch
Exercícios
Crie um diretório chamado
testee dentro dele crie um arquivo vazio chamadodados.txtusando um único comando.mkdir teste && touch teste/dados.txtCopie o arquivo
dados.txt(dentro deteste) para o diretório atual com o nomebackup.txt.cp teste/dados.txt backup.txtRenomeie o diretório
testeparaantigoe mova o arquivobackup.txtpara dentro dele.mv teste antigo && mv backup.txt antigo/Remova o arquivo
dados.txtde dentro do diretórioantigoe, em seguida, remova o diretórioantigo(que ainda contémbackup.txt).rm antigo/dados.txt rm -r antigo # ou rmdir antigo (falha pois não vazio), use rm -rCrie um diretório
projetocom três subdiretórios (src,docs,tests) usando um único comando. Depois, remova o diretóriotests(vazio) com o comando apropriado.mkdir -p projeto/{src,docs,tests} rmdir projeto/tests