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_cheio

mkdir 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/janeiro

rmdir (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 vazio

touch

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 atual

Se 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 com ls.
  • 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

Exercícios

  1. Crie um diretório chamado teste e dentro dele crie um arquivo vazio chamado dados.txt usando um único comando.

    mkdir teste && touch teste/dados.txt
  2. Copie o arquivo dados.txt (dentro de teste) para o diretório atual com o nome backup.txt.

    cp teste/dados.txt backup.txt
  3. Renomeie o diretório teste para antigo e mova o arquivo backup.txt para dentro dele.

    mv teste antigo && mv backup.txt antigo/
  4. Remova o arquivo dados.txt de dentro do diretório antigo e, em seguida, remova o diretório antigo (que ainda contém backup.txt).

    rm antigo/dados.txt
    rm -r antigo  # ou rmdir antigo (falha pois não vazio), use rm -r
  5. Crie um diretório projeto com três subdiretórios (src, docs, tests) usando um único comando. Depois, remova o diretório tests (vazio) com o comando apropriado.

    mkdir -p projeto/{src,docs,tests}
    rmdir projeto/tests