Tutorial de Linux / Criar, copiar, mover e excluir arquivos e diretórios

No Linux, use mkdir para criar diretórios, touch para preparar um arquivo vazio e cp ou mv para copiar, mover ou renomear arquivos. A remoção de arquivos é feita com rm, e a de diretórios vazios, com rmdir. Esta aula reúne essas operações em uma pasta de prática nova dentro do diretório pessoal, verificando o resultado de cada etapa.

Antes de criar ou mover arquivos, aplique as verificações de localização atual e caminhos. Se a pasta de prática já existir ou sua criação falhar, pare e escolha outro nome novo. Não continue a sequência usando dados que já estavam no local.

Preparar um diretório exclusivo para a prática

Os exemplos pressupõem Bash, uma conta de usuário comum e permissão para criar arquivos no diretório pessoal. O caminho ~/linux-course-07-practice deve identificar uma pasta nova e vazia. Se esse nome já estiver em uso, escolha outro e substitua-o em todos os comandos da aula. O primeiro mkdir informa um erro quando o caminho existe: trate o erro como motivo para parar.

mkdir ~/linux-course-07-practice

Quando termina com sucesso, mkdir normalmente não imprime mensagem. Confira a criação com ls -ld. As próximas etapas pressupõem que essa criação funcionou e que o diretório começou vazio:

ls -ld ~/linux-course-07-practice

Crie dois subdiretórios e consulte o conteúdo da pasta de prática:

mkdir ~/linux-course-07-practice/drafts ~/linux-course-07-practice/archive

ls ~/linux-course-07-practice

A listagem deve mostrar archive e drafts. mkdir -p é útil para criar caminhos com vários níveis, mas também aceita diretórios que já existem. Por isso, não é usado para criar a pasta exclusiva desta prática. Em cada bloco, leia qualquer mensagem de erro antes de prosseguir: uma listagem posterior não comprova que o comando anterior funcionou.

Criar e conferir um arquivo vazio

Quando o nome ainda não existe, touch cria um arquivo vazio. Em um arquivo existente, ele pode atualizar os horários de acesso e modificação. Portanto, não considere touch um comando que apenas cria arquivos novos.

touch ~/linux-course-07-practice/drafts/notes.txt

ls -l ~/linux-course-07-practice/drafts/notes.txt

Como o arquivo acabou de ser criado sem conteúdo, seu tamanho na listagem deve ser 0 bytes. As permissões e as datas variam conforme o sistema. touch não escreve texto no arquivo; para isso, é necessário um editor ou outro comando.

Comparar cópia, mudança de nome e movimentação

cp mantém o arquivo de origem e cria uma cópia separada. O comando abaixo copia notes.txt de drafts para archive. No GNU cp, -i pede confirmação antes de sobrescrever um arquivo de destino existente:

cp -i ~/linux-course-07-practice/drafts/notes.txt ~/linux-course-07-practice/archive/notes.txt

ls -1 ~/linux-course-07-practice/drafts

ls -1 ~/linux-course-07-practice/archive

Depois da cópia, os dois ls -1 mostram, nesta ordem, o conteúdo de drafts e o de archive. Cada diretório contém notes.txt. A opção -1 usa um nome por linha:

notes.txt
notes.txt

As duas linhas correspondem a arquivos distintos. Alterar o conteúdo de um deles posteriormente não sincroniza o outro. As linhas em branco entre os comandos do bloco servem para leitura; não acrescentam linhas vazias à saída mostrada.

mv move um arquivo para outro local ou muda seu nome dentro do mesmo diretório. Aqui, ele renomeia o original para notes-old.txt; a cópia em archive mantém o nome anterior:

mv -i ~/linux-course-07-practice/drafts/notes.txt ~/linux-course-07-practice/drafts/notes-old.txt

ls -1 ~/linux-course-07-practice/drafts

ls -1 ~/linux-course-07-practice/archive

Agora, a primeira linha vem de drafts e mostra notes-old.txt. A segunda vem de archive e continua mostrando notes.txt. Somente o nome do original mudou:

notes-old.txt
notes.txt

Se o último argumento de cp ou mv for um diretório existente, o arquivo será colocado dentro dele com seu nome. Confira se o destino é um arquivo ou diretório antes de executar. Leia qualquer pergunta de sobrescrita antes de responder; se recusar, a operação solicitada pode não ocorrer. Consulte os arquivos novamente para confirmar o estado.

Remover um arquivo e um diretório vazio

rm remove o arquivo indicado e, por padrão, não o envia para uma lixeira. Confira primeiro o caminho com ls. A opção -i abaixo pede confirmação antes da remoção. Leia o nome apresentado e confirme somente se ele corresponder ao arquivo da prática que você pretende excluir:

ls -l ~/linux-course-07-practice/drafts/notes-old.txt

rm -i ~/linux-course-07-practice/drafts/notes-old.txt

Se você confirmou a remoção, drafts ficou vazio. Se recusou, o arquivo permanece ali; não suponha que a exclusão ocorreu apenas porque o comando terminou. rmdir remove somente diretórios vazios:

rmdir ~/linux-course-07-practice/drafts

ls ~/linux-course-07-practice

Com a exclusão confirmada e rmdir concluído, a listagem final contém archive. Esse diretório ainda guarda notes.txt; tentar removê-lo com rmdir falha enquanto ele não estiver vazio. Se houver erro, consulte o conteúdo e resolva a causa em vez de forçar a remoção.

Guarde os arquivos de prática enquanto forem úteis. Quando decidir removê-los, confira os caminhos exatos e faça a limpeza separadamente. Usar rm -rf para apagar toda a árvore de uma vez não é um atalho adequado para esta prática inicial.

O que verificar antes de alterar arquivos?

  • Localização atual: consulte pwd quando um caminho relativo depender de onde você está.
  • Alvo: use ls -ld para conferir o nome e os detalhes do arquivo ou diretório em si.
  • Sobrescrita: faça cópia de segurança de dados importantes e verifique se há um nome igual no destino antes de copiar ou mover.
  • Exclusão: rm não oferece um mecanismo próprio para desfazer a remoção. Não adivinhe um caminho abreviado; confirme o alvo e mantenha as cópias necessárias.

As opções e situações específicas estão nos guias de touch e os horários dos arquivos, mkdir e a criação de diretórios, cp e a cópia de arquivos, mv e a movimentação de arquivos, rm e a remoção de arquivos e rmdir e os diretórios vazios.

Documentação oficial

O manual oficial do GNU Coreutils descreve o comportamento e as opções desses comandos. Consulte também man ou --help na máquina em que realizará a prática para verificar as opções da implementação instalada.