Operações básicas com arquivos

LinuxBeginner
Pratique Agora

Introdução

Boas-vindas ao laboratório de operações básicas com arquivos no Linux! No Linux, quase tudo é tratado como um arquivo, por isso as operações com arquivos são fundamentais para usar o sistema. Neste laboratório, você aprenderá os comandos mais comuns para gerenciar arquivos e diretórios, desenvolvendo mais habilidade para navegar e organizar seu sistema Linux.

Entendendo seu ambiente de trabalho

No Linux, cada usuário normalmente tem um "diretório pessoal", representado por ~. No entanto, neste ambiente de laboratório, você começará no diretório /home/labex/project, que é o diretório de trabalho padrão.

Primeiro, abra um terminal na área de trabalho OU mude para a aba do terminal no ambiente do laboratório.

Captura de tela da interface do terminal

Comece verificando sua localização atual:

pwd

pwd significa "print working directory" (exibir diretório de trabalho). Ele mostra sua localização atual no sistema de arquivos. Esse comando é essencial para você se orientar na estrutura de arquivos do Linux. A saída deve ser /home/labex/project.

Agora, examine a relação entre o diretório atual e o diretório pessoal:

echo ~

Observação: se você não conseguir digitar o símbolo ~ no terminal da área de trabalho devido a diferenças de layout do teclado em alguns países, tente mudar para a aba independente Terminal, no canto superior esquerdo da interface da máquina virtual.

Esse comando exibe o caminho do seu diretório pessoal, que deve ser /home/labex.

Para ver o conteúdo do diretório atual, use:

ls

Esse comando lista os arquivos e diretórios do seu diretório de trabalho atual (/home/labex/project).

Verifique também o conteúdo do seu diretório pessoal:

ls ~

Esse comando lista o conteúdo do seu diretório pessoal, que pode ser diferente do diretório de trabalho atual.

Entender a diferença entre o diretório de trabalho atual e o diretório pessoal é importante para navegar pelo sistema de arquivos do Linux com eficiência.

O Linux usa o que chamamos de "sistema de arquivos hierárquico". Pense nele como uma grande árvore com vários galhos. O tronco principal é o "diretório raiz", representado por uma única barra /. Todos os outros diretórios e arquivos partem dessa raiz.

Explore como se deslocar por essa estrutura semelhante a uma árvore:

  1. Verifique sua localização atual:
pwd

A saída deve mostrar /home/labex/project. Se isso não acontecer, talvez você esteja em outro diretório. Use cd /home/labex/project para voltar ao ponto inicial.

  1. Veja o conteúdo do diretório atual:
ls

Esse comando lista todos os arquivos e diretórios da sua localização atual. /home/labex/project está vazio, portanto você não verá nenhum item.

  1. Suba um nível até o diretório pai:
cd ..

O .. significa "o diretório acima". Depois desse comando, execute pwd novamente. Agora, você deve estar em /home/labex.

  1. Volte ao diretório do projeto:
cd project

Esse comando leva você de volta para /home/labex/project.

  1. Vá para o diretório pessoal:
cd ~

O ~ é um atalho para o diretório pessoal. Execute pwd para confirmar que você está em /home/labex.

  1. Volte ao diretório do projeto usando um caminho absoluto:
cd /home/labex/project

Isso é chamado de "caminho absoluto" porque começa na raiz (/) e informa o local completo.

Criando arquivos e listando o conteúdo de diretórios

Agora que você sabe navegar, crie alguns arquivos e explore como listar o conteúdo de diretórios.

Primeiro, confirme que você está no diretório /home/labex/project:

cd /home/labex/project
  1. Crie alguns arquivos:
touch file1.txt

O comando touch cria um arquivo vazio. Se o arquivo já existir, ele atualiza o carimbo de data e hora do arquivo sem alterar seu conteúdo. É uma forma simples de criar arquivos novos e vazios.

echo "Hello, Linux" > file2.txt

Esse comando realiza duas ações:

  • echo é um comando que exibe texto.
  • O símbolo > redireciona a saída de echo para um arquivo chamado file2.txt. Se o arquivo não existir, ele será criado. Se já existir, seu conteúdo será substituído.
echo "Hidden file" > .hiddenfile

Esse comando cria um arquivo oculto. No Linux, qualquer nome de arquivo ou diretório que comece com um ponto (.) é considerado oculto.

  1. Agora, crie um diretório:
mkdir testdir

O comando mkdir (abreviação de "make directory", criar diretório) cria um novo diretório chamado testdir.

  1. Listagem básica:
ls

Saída da listagem do conteúdo do diretório

Esse comando mostra o conteúdo do diretório atual. Você deve ver file1.txt, file2.txt e testdir.

  1. Listagem detalhada:
ls -l

A opção -l (a letra L minúscula, não o número 1) fornece uma listagem em formato "longo". Você verá detalhes adicionais, como permissões do arquivo, proprietário, tamanho e data de modificação.

  1. Mostre os arquivos ocultos:
ls -a

Esse comando mostra todos os arquivos, incluindo o arquivo oculto .hiddenfile que você criou.

  1. Combine opções:
ls -la

Esse comando combina o formato longo (-l) com a exibição de todos os arquivos (-a).

  1. Liste o conteúdo de um diretório específico:
ls -l testdir

Esse comando lista o conteúdo do diretório testdir, que deve estar vazio neste momento.

Os comandos de listagem desta etapa servem para praticar e confirmar visualmente o resultado. Seu progresso será avaliado verificando se os arquivos e o diretório necessários foram criados corretamente.

Copiando arquivos e diretórios

Agora que temos alguns arquivos para trabalhar, aprenda a copiá-los:

  1. Copie um arquivo:
cp file1.txt file1_copy.txt

Esse comando cria, no diretório atual, uma cópia de file1.txt chamada file1_copy.txt.

Confirme a cópia:

ls
  1. Copie um arquivo para outro diretório:
cp file2.txt testdir/

Esse comando copia file2.txt para o diretório testdir.

  1. Copie um diretório:
cp -r testdir testdir_copy

A opção -r significa "recursivo". Ela é necessária para copiar diretórios e garantir que todo o conteúdo seja copiado.

  1. Confirme as cópias:
ls
ls testdir
ls testdir_copy

Terminal exibindo os arquivos copiados

Movendo e renomeando arquivos e diretórios

No Linux, o comando mv é usado tanto para mover quanto para renomear:

  1. Renomeie um arquivo:
mv file1.txt newname.txt

Esse comando renomeia file1.txt para newname.txt.

  1. Mova um arquivo para um diretório:
mv newname.txt testdir/

Esse comando move newname.txt para o diretório testdir.

  1. Renomeie um diretório:
mv testdir_copy new_testdir

Esse comando renomeia testdir_copy para new_testdir.

  1. Mova e renomeie em um único comando:
mv testdir/newname.txt ./original_file1.txt

Esse comando move newname.txt para fora de testdir e o renomeia como original_file1.txt no diretório atual.

  1. Confirme as alterações:
ls
ls testdir

Exibição dos resultados da execução dos comandos

Removendo arquivos e diretórios

Remover arquivos e diretórios é uma operação poderosa. Diferentemente das interfaces gráficas, a linha de comando geralmente não tem uma "Lixeira". As exclusões feitas com rm normalmente são permanentes. Sempre confira os comandos antes de executá-los!

Agora, limpe os arquivos e diretórios que você criou. Confirme que está no diretório /home/labex/project.

pwd
ls -a

Você deve ver arquivos como original_file1.txt, .hiddenfile e file2.txt, além de diretórios como testdir e new_testdir.

.
..
.hiddenfile
file1_copy.txt
file2.txt
new_testdir
original_file1.txt
testdir
  1. Remova um único arquivo:

    rm original_file1.txt
    

    O comando rm (abreviação de "remove", remover) exclui arquivos. Confira o resultado:

    ls
    

    original_file1.txt não deve mais aparecer.

  2. Remova de forma interativa (mais seguro):

    Tente remover file2.txt, desta vez usando a opção interativa -i:

    rm -i file2.txt
    

    A opção -i solicita sua confirmação antes de excluir cada arquivo. Digite y (de yes, sim) e pressione Enter para confirmar a exclusão. Se você digitar n ou qualquer outro valor, o arquivo não será excluído.

    ls
    

    Se você confirmou a exclusão, file2.txt não deve mais aparecer.

  3. Veja o que acontece com um diretório que não está vazio:

    Lembre-se de new_testdir, criado quando você renomeou testdir_copy. Ele ainda contém a cópia de file2.txt, portanto rmdir falhará. Primeiro, confirme o conteúdo:

    ls new_testdir
    

    Você deve ver file2.txt. Agora, tente usar rmdir:

    rmdir new_testdir
    

    rmdir (remove directory, remover diretório) só funciona com diretórios vazios.

    ls
    

    new_testdir não pode ser removido porque não está vazio, portanto ainda deve aparecer na listagem.

  4. Tente remover um diretório que não está vazio:

    Agora, tente usar rmdir em testdir, que ainda contém file2.txt (copiado na Etapa 4):

    ls testdir
    rmdir testdir
    

    Você provavelmente verá uma mensagem de erro semelhante a rmdir: failed to remove 'testdir': Directory not empty. Isso é esperado, porque rmdir não consegue remover diretórios que contêm arquivos ou outros diretórios.

  5. Remova um diretório e seu conteúdo (recursivamente):

    Para remover um diretório que não está vazio, use rm com a opção -r (recursiva):

    rm -r testdir
    

    Esse comando remove o diretório testdir e tudo o que estiver dentro dele. Use-o com cuidado.

    ls
    

    testdir não deve mais aparecer.

  6. Remoção forçada (use com extrema cautela):

    Às vezes, pode ser necessário remover arquivos sem receber uma confirmação, mesmo que estejam protegidos contra gravação (embora não haja nenhum arquivo assim neste laboratório). A opção -f (forçar) faz isso.

    Remova o arquivo oculto:

    rm .hiddenfile
    ls -a
    

    Agora, combine -r e -f. O comando rm -rf é extremamente poderoso e potencialmente perigoso. Ele remove diretórios recursivamente (-r) e força a remoção sem solicitar confirmação (-f).

    !!! ZONA DE PERIGO !!! Tenha ABSOLUTA CERTEZA do que está excluindo antes de executar rm -rf. Um pequeno erro de digitação pode excluir arquivos importantes do sistema ou seus dados pessoais. Não há como desfazer a operação. Por exemplo, rm -rf / pode tentar excluir todo o sistema (se você tiver as permissões necessárias). Sempre confira o caminho.

    Crie um diretório e um arquivo temporários para fazer uma demonstração segura:

    mkdir temp_dir
    touch temp_dir/temp_file.txt
    ls -R temp_dir
    

    Observação: talvez você tenha notado que usamos -R (maiúsculo) com ls, em vez de -r (minúsculo), como fizemos com cp e rm. Isso não é apenas uma diferença entre maiúsculas e minúsculas: são opções completamente diferentes! Para ls, -R significa "listagem recursiva" (listar subdiretórios), enquanto -r significa "ordem de classificação inversa". Para cp e rm, a opção recursiva é -r (minúsculo). Sempre consulte o manual (man command) para entender as opções específicas de cada comando.

    Agora, remova o diretório à força:

    rm -rf temp_dir
    

    Confirme a remoção:

    ls
    

    temp_dir não deve mais aparecer.

Lembre-se: na linha de comando do Linux, os arquivos excluídos geralmente desaparecem para sempre. Use rm com cuidado!

Resumo

Parabéns! Você aprendeu as operações essenciais com arquivos no Linux:

  • Navegar pelo sistema de arquivos com cd e pwd
  • Criar arquivos e diretórios com touch e mkdir
  • Listar conteúdo com ls e suas opções
  • Copiar arquivos e diretórios com cp
  • Mover e renomear com mv
  • Remover arquivos e diretórios com rm e rmdir

Esses comandos formam a base do gerenciamento de arquivos no Linux. Com a prática, você se tornará capaz de gerenciar arquivos e diretórios pela linha de comando.

Lembre-se de usar esses comandos com cuidado, especialmente rm, pois ele exclui arquivos e diretórios permanentemente, sem possibilidade de recuperação.

À medida que continuar aprendendo Linux, consulte as páginas de manual, por exemplo, man ls, para conhecer melhor cada comando e suas opções. Boa exploração!