Linux Professional Institute Learning Logo.
Ir para o conteúdo principal
  • Home
    • Todos os recursos
    • LPI Materiais Didáticos
    • Colabore Conosco
    • Publishing Partners
    • Seja um Publishing Partner
    • Quem Somos
    • FAQ
    • Colaboradores
    • Contato
  • LPI.org
103.3 Lição 1
Tópico 101: Arquitetura de Sistema
101.1 Identificar e editar configurações de hardware
  • 101.1 Lição 1
101.2 Início (boot) do sistema
  • 101.2 Lição 1
101.3 Alternar runlevels/boot targets, desligar e reiniciar o sistema
  • 101.3 Lição 1
Tópico 102: Instalação do Linux e administração de Pacotes
102.1 Dimensionar partições de disco
  • 102.1 Lição 1
102.2 Instalar o gerenciador de inicialização
  • 102.2 Lição 1
102.3 Controle de bibliotecas compartilhadas
  • 102.3 Lição 1
102.4 Utilização do sistema de pacotes Debian
  • 102.4 Lição 1
102.5 Utilização do sistema de pacotes RPM e YUM
  • 102.5 Lição 1
102.6 Linux virtualizado
  • 102.6 Lição 1
Tópico 103: Comandos GNU e Unix
103.1 Trabalhar na linha de comando
  • 103.1 Lição 1
  • 103.1 Lição 2
103.2 Processar fluxos de texto usando filtros
  • 103.2 Lição 1
103.3 Gerenciamento básico de arquivos
  • 103.3 Lição 1
  • 103.3 Lição 2
103.4 Fluxos, pipes (canalização) e redirecionamentos de saída
  • 103.4 Lição 1
  • 103.4 Lição 2
103.5 Criar, monitorar e finalizar processos
  • 103.5 Lição 1
  • 103.5 Lição 2
103.6 Modificar a prioridade de execução de um processo
  • 103.6 Lição 1
103.7 Procurar em arquivos de texto usando expressões regulares
  • 103.7 Lição 1
  • 103.7 Lição 2
103.8 Edição básica de arquivos com o vi
  • 103.8 Lição 1
Tópico 104: Dispositivos, sistemas de arquivos Linux e padrão FHS
104.1 Criar partições e sistemas de arquivos
  • 104.1 Lição 1
104.2 Manutenção da integridade de sistemas de arquivos
  • 104.2 Lição 1
104.3 Controle da montagem e desmontagem dos sistemas de arquivos
  • 104.3 Lição 1
104.5 Controlar permissões e propriedades de arquivos
  • 104.5 Lição 1
104.6 Criar e alterar links simbólicos e hardlinks
  • 104.6 Lição 1
104.7 Encontrar arquivos de sistema e conhecer sua localização correta
  • 104.7 Lição 1
How to get certified
  1. Tópico 103: Comandos GNU e Unix
  2. 103.3 Gerenciamento básico de arquivos
  3. 103.3 Lição 1

103.3 Lição 1

Certificação:

LPIC-1

Versão:

5.0

Tópico:

103 Comandos GNU e Unix

Objetivo:

103.3 Gerenciamento básico de arquivos

Lição:

1 de 2

Introdução

No Linux, tudo são arquivos, então é importantíssimo saber como manipulá-los. Nesta lição, trataremos das operações básicas em arquivos.

Em geral, um usuário Linux precisa saber navegar pelo sistema de arquivos, copiar arquivos de um local para outro e excluir arquivos. Também falaremos dos comandos associados ao gerenciamento de arquivos.

Um arquivo é uma entidade que armazena dados e programas. Consiste em conteúdo e metadados (tamanho do arquivo, proprietário, data de criação, permissões). Os arquivos são organizados em diretórios. Um diretório é um arquivo que armazena outros arquivos.

Dentre os diferentes tipos de arquivos, temos:

Arquivos regulares

armazenam dados e programas.

Diretórios

contêm outros arquivos.

Arquivos especiais

usados para entrada e saída de dados.

Claro, existem outros tipos de arquivos, mas eles estão além do escopo desta lição. Mais tarde, ensinaremos como identificar esses outros tipos.

Manipulação de arquivos

Usando ls para listar arquivos

O comando ls é uma das ferramentas de linha de comando mais importantes que precisamos aprender para navegar no sistema de arquivos.

Em sua forma mais básica, o ls lista somente nomes de arquivos e diretórios:

$ ls
Desktop Downloads   emp_salary  file1   Music   Public  Videos
Documents   emp_name    examples.desktop    file2   Pictures    Templates

Quando usado com -l, conhecido como formato de “listagem longa”, ele mostra as permissões de arquivo ou diretório, proprietário, tamanho, data de modificação, hora e nome:

$ ls -l
total 60
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Desktop
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Documents
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Downloads
-rw-r--r--  1   frank   frank     21    Sep 7   12:59   emp_name
-rw-r--r--  1   frank   frank     20    Sep 7   13:03   emp_salary
-rw-r--r--  1   frank   frank   8980    Apr 1   2018    examples.desktop
-rw-r--r--  1   frank   frank     10    Sep 1   2018    file1
-rw-r--r--  1   frank   frank     10    Sep 1   2018    file2
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Music
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Pictures
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Public
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Templates
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Videos

O primeiro caractere na saída indica o tipo de arquivo:

-

para um arquivo regular.

d

para um diretório.

c

para um arquivo especial.

Para mostrar o tamanho dos arquivos em um formato legível por humanos, adicione a opção -h:

$ ls -lh
total 60K
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Desktop
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Documents
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Downloads
-rw-r--r--  1   frank   frank     21    Sep 7   12:59   emp_name
-rw-r--r--  1   frank   frank     20    Sep 7   13:03   emp_salary
-rw-r--r--  1   frank   frank   8.8K    Apr 1   2018    examples.desktop
-rw-r--r--  1   frank   frank     10    Sep 1   2018    file1
-rw-r--r--  1   frank   frank     10    Sep 1   2018    file2
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Music
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Pictures
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Public
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Templates
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Videos

Para listar todos os arquivos, incluindo arquivos ocultos (aqueles que começam com .), use a opção -a:

$ ls -a
.               .dbus   file1   .profile
..              Desktop file2   Public
.bash_history   .dmrc  .gconf  .sudo_as_admin_successful

Os arquivos de configuração como .bash_history, que por padrão ficam ocultos, agora estão visíveis.

Em geral, a sintaxe do comando ls é dada por:

ls OPTIONS FILE

Onde OPTIONS é qualquer uma das opções mostradas anteriormente (para ver todas as opções possíveis execute man ls), e FILE é o nome do arquivo ou detalhes do diretório que você deseja listar.

Note

Quando FILE não está especificado, o diretório atual fica implícito.

Criar, copiar, mover e remover arquivos

Criando arquivos com touch

O comando touch é a maneira mais fácil de criar arquivos novos e vazios. Também pode ser usado para alterar os carimbos de data/hora (ou seja, hora de modificação) dos arquivos e diretórios existentes. A sintaxe para usar touch é:

touch OPTIONS FILE_NAME(S)

Sem nenhuma opção, touch cria novos arquivos com os nomes de arquivo fornecidos como argumentos, desde que ainda não existam arquivos com o mesmo nome. touch pode criar qualquer número de arquivos simultaneamente:

$ touch file1 file2 file3

Com esse comando, seriam criados três arquivos novos vazios, chamados file1, file2 e file3.

Diversas opções de touch foram especificamente pensadas para permitir ao usuário alterar os carimbos de data/hora dos arquivos. Por exemplo, a opção -a altera apenas a hora de acesso, enquanto a opção -m altera apenas a hora de modificação. O uso de ambas as opções em conjunto altera ambas as horas de acesso e de modificação para o horário atual:

$ touch -am file3
Copiando arquivos com cp

Como usuários Linux, geralmente copiamos arquivos de um local para outro. Podemos usar o cp para todas as tarefas de cópia, seja para mover um arquivo de música ou um arquivo de sistema de um diretório para outro:

$ cp file1 dir2

Este comando pode ser interpretado literalmente como copiar file1 para o diretório dir2. O resultado é a presença de file1 dentro de dir2. Para que este comando seja executado com sucesso, file1 deve existir no diretório atual do usuário. Caso contrário, o sistema exibe a mensagem de erro No such file or directory.

$ cp dir1/file1 dir2

Neste caso, observe que o caminho para file1 é mais explícito. O caminho de origem pode ser expresso como um caminho relativo ou um caminho absoluto. Os caminhos relativos são dados em referência a um diretório específico, ao passo que os caminhos absolutos não são fornecidos com uma referência. Esclareceremos melhor essa noção mais adiante.

Por enquanto, apenas observe que este comando copia file1 para o diretório dir2. O caminho para file1 é fornecido com mais detalhes, pois o usuário atualmente não está localizado em dir1.

$ cp /home/frank/Documents/file2 /home/frank/Documents/Backup

Neste terceiro caso, file2, localizado em /home/frank/Documents, é copiado no diretório /home/frank/Documents/Backup. O caminho fornecido aqui é absoluto. Nos dois exemplos acima, os caminhos são relativos. Quando um caminho começa com o caractere /, trata-se de um caminho absoluto; caso contrário, ele é relativo.

A sintaxe geral de cp é:

cp OPTIONS SOURCE DESTINATION

SOURCE é o arquivo a ser copiado e DESTINATION o diretório para o qual o arquivo será copiado. SOURCE e DESTINATION podem ser especificados como caminhos absolutos ou relativos.

Movendo arquivos com o mv

Assim como o cp para copiar, o Linux fornece um comando para mover e renomear arquivos. Ele se chama mv.

A operação de mover é análoga à de recortar e colar que costumamos executar por meio de uma interface gráfica de usuário (GUI).

Se quiser mover um arquivo para um novo local, use mv da seguinte maneira:

mv FILENAME DESTINATION_DIRECTORY

Aqui está um exemplo:

$ mv myfile.txt /home/frank/Documents

O resultado é que myfile.txt é movido para o destino /home/frank/Documents.

Para renomear um arquivo, mv é usado da seguinte maneira:

$ mv old_file_name new_file_name

Esse comando muda o nome do arquivo de old_file_name para new_file_name.

Por padrão, o mv não pede confirmação se você quiser sobrescrever (renomear) um arquivo existente. No entanto, podemos fazer com que o sistema exiba uma mensagem, usando a opção -i:

$ mv -i old_file_name new_file_name
mv: overwrite 'new_file_name'?

Este comando solicita a permissão do usuário antes de sobrescrever old_file_name com new_file_name.

Inversamente, se usarmos -f:

$ mv -f old_file_name new_file_name

o arquivo seria sobrescrito à força, sem pedir permissão.

Removendo arquivos com rm

rm é usado para excluir arquivos. Pense nele como uma forma abreviada da palavra “remover”. Note que a ação de remover um arquivo geralmente é irreversível e, portanto, este comando deve ser usado com cautela.

$ rm file1

Este comando excluiria file1.

$ rm -i file1
rm: remove regular file 'file1'?

Este comando solicitaria uma confirmação ao usuário antes de excluir file1. Lembre-se, vimos a opção -i ao usarmos mv, acima.

$ rm -f file1

Este comando exclui file1 à força, sem pedir sua confirmação.

Podemos excluir vários arquivos ao mesmo tempo:

$ rm file1 file2 file3

Neste exemplo, file1, file2 e file3 são excluídos simultaneamente.

A sintaxe de rm geralmente é a seguinte:

rm OPTIONS FILE

Criando e removendo diretórios

Criando diretórios com mkdir

A criação de diretórios é essencial para organizar seus arquivos e pastas. Os arquivos podem ser agrupados de maneira lógica dentro de um diretório. Para criar um diretório, use mkdir:

mkdir OPTIONS DIRECTORY_NAME

onde DIRECTORY_NAME é o nome do diretório a ser criado. Podemos criar qualquer número de diretórios simultaneamente:

$ mkdir dir1

criaria o diretório dir1 no diretório atual do usuário.

$ mkdir dir1 dir2 dir3

O comando anterior criaria três diretórios, dir1, dir2 e dir3, ao mesmo tempo.

Para criar um diretório junto com seus subdiretórios, use a opção -p (“parents”):

$ mkdir -p parents/children

Este comando criaria a estrutura de diretórios parents/children, ou seja, criaria os diretórios parents e children. children estaria localizado dentro de parents.

Removendo diretórios com o rmdir

rmdir deleta um diretório se ele estiver vazio. Sua sintaxe é dada por:

rmdir OPTIONS DIRECTORY

onde DIRECTORY pode ser um único argumento ou uma lista de argumentos.

$ rmdir dir1

Este comando excluiria dir1.

$ rmdir dir1 dir2

Este comando excluiria simultaneamente dir1 e dir2.

Podemos remover um diretório junto com seu subdiretório:

$ rmdir -p parents/children

Isso removeria a estrutura de diretórios parents/children. Note que, se algum dos diretórios não estiver vazio, ele não será excluído.

Manipulação recursiva de arquivos e diretórios

Para manipular um diretório e seu conteúdo, precisamos aplicar a recursão. Recursão significa efetuar uma ação e repetir essa ação em toda a árvore de diretórios. No Linux, as opções -r ou -R ou --recursive são geralmente associadas à recursão.

O cenário a seguir ajuda a entender um pouco melhor a recursão:

Você lista o conteúdo de um diretório students, que contém dois subdiretórios, level 1 e level 2, e o arquivo chamado frank. Aplicando a recursão, o comando ls listaria o conteúdo de alunos, ou seja, level 1, level 2 e frank, mas não terminaria aí. Ele também entraria nos subdiretórios level 1 e level 2 para listar seus conteúdos, e assim por diante na árvore de diretórios.

Listagem recursiva com ls -R

ls -R é usado para listar o conteúdo de um diretório junto com seus subdiretórios e arquivos.

$ ls -R mydirectory
mydirectory/:
file1   newdirectory

mydirectory/newdirectory:

Na listagem acima, mydirectory, incluindo todo o seu conteúdo, está listado. Podemos observar que mydirectory contém o subdiretório newdirectory e o arquivo file1. newdirectory está vazio, por isso nenhum conteúdo é mostrado.

Em geral, para listar o conteúdo de um diretório incluindo seus subdiretórios, usamos:

ls -R DIRECTORY_NAME

A adição de uma barra a DIRECTORY_NAME não tem efeito:

$ ls -R animal

é similar a

$ ls -R animal/

Cópia recursiva com cp -r

cp -r (ou -R ou --recursive) permite copiar um diretório junto com todos os seus subdiretórios e arquivos.

$ tree mydir
mydir
|_file1
|_newdir
    |_file2
    |_insidenew
        |_lastdir


3 directories, 2 files
$ mkdir newcopy
$ cp mydir newcopy
cp: omitting directory 'mydir'
$ cp -r mydir newcopy
* tree newcopy
newcopy
|_mydir
    |_file1
    |_newdir
        |_file2
        |_insidenew
            |_lastdir

4 directories, 2 files

Na listagem acima, observamos que, ao tentar copiar mydir em newcopy, usando cp sem -r, o sistema exibe a mensagem cp: omitting directory 'mydir'. No entanto, ao adicionar a opção -r, todo o conteúdo de mydir, incluindo ele mesmo, é copiado para newcopy.

Para copiar diretórios e subdiretórios, use:

cp -r SOURCE DESTINATION

Remoção recursiva com rm -r

rm -r remove um diretório e todo o seu conteúdo (subdiretórios e arquivos).

Warning

Tenha muito cuidado com o -r ou a combinação de opções de -rf quando usá-lo com o comando rm. Um comando de remoção recursivo em um diretório de sistema importante pode tornar o sistema inutilizável. Empregue o comando de remoção recursiva somente quando tiver certeza absoluta de que o conteúdo de um diretório pode ser removido do computador com segurança.

Ao tentar excluir um diretório sem usar -r, o sistema exibe um erro:

$ rm newcopy/
rm: cannot remove 'newcopy/': Is a directory
$ rm -r newcopy/

É necessário adicionar -r, como no segundo comando, para que a exclusão tenha efeito.

Note

Você deve estar se perguntando por que não usamos rmdir neste caso. Existe uma diferença sutil entre os dois comandos. rmdir terá sucesso na exclusão apenas se o diretório fornecido estiver vazio, enquanto rm -r pode ser usado independentemente de o diretório estar vazio ou não.

Adicione a opção -i para pedir a confirmação antes que o arquivo seja excluído:

$ rm -ri mydir/
rm: remove directory 'mydir/'?

O sistema avisa antes de tentar excluir mydir.

Globbing de arquivos e caracteres curinga

O globbing de arquivos é um recurso fornecido pelo shell do Unix/Linux para representar múltiplos nomes de arquivo usando caracteres especiais chamados caracteres curinga.

Os curingas são, essencialmente, símbolos que podem ser usados para substituir um ou mais caracteres. Eles permitem, por exemplo, mostrar todos os arquivos que começam com a letra A ou todos os que terminam com as letras .conf.

Os caracteres curinga são utilíssimos, pois podem ser usados com comandos como cp, ls ou rm.

Veja a seguir alguns exemplos de globbing de arquivos:

rm *

Remove todos os arquivos no diretório de trabalho atual.

ls l?st

Lista todos os arquivos cujo nome começa com l, seguido por qualquer caractere único e terminando com st.

rmdir [a-z]*

Remove todos os diretórios cujo nome começa com uma letra.

Tipos de caracteres curinga

Existem três caracteres que podem ser usados como curingas no Linux:

* (asterisco)

representa zero, uma ou mais ocorrências de qualquer caractere.

? (interrogação)

representa uma única ocorrência de qualquer caractere.

[ ] (caracteres entre colchetes)

representa qualquer ocorrência do(s) caractere(s) inseridos nos colchetes. É possível usar diferentes tipos de caracteres, sejam números, letras ou outros caracteres especiais. Por exemplo, a expressão [0-9] representa todos os dígitos.

O asterisco

Um asterisco (*) corresponde a zero, uma ou mais ocorrências de qualquer caractere.

Por exemplo:

$ find /home -name *.png

Esse comando localizaria todos os arquivos que terminam com .png, como photo.png, cat.png, frank.png. O comando find será explorado posteriormente em uma lição seguinte.

Da mesma maneira:

$ ls lpic-*.txt

listaria todos os arquivos de texto que começam com os caracteres lpic- seguidos por qualquer número de caracteres e que terminam com .txt, como lpic-1.txt e lpic-2.txt.

O caractere curinga asterisco pode ser usado para manipular (copiar, excluir ou mover) todo o conteúdo de um diretório:

$ cp -r animal/* forest

Neste exemplo, todo o conteúdo de animal é copiado para forest.

Em geral, para copiar todo o conteúdo de um diretório, usamos:

cp -r SOURCE_PATH/* DEST_PATH

onde SOURCE_PATH pode ser omitido se já estivermos no diretório desejado.

O asterisco, assim como qualquer outro caractere curinga, pode ser usado repetidamente no mesmo comando e em qualquer posição:

$ rm *ate* 

Os arquivos com nomes iniciando com zero, uma ou mais ocorrências de qualquer caractere, seguidos das letras ate e terminando com zero, uma ou mais ocorrências de qualquer caractere serão removidos.

O ponto de interrogação

O ponto de interrogação (?) corresponde a uma única ocorrência de um caractere.

Considere a listagem:

$ ls
last.txt    lest.txt    list.txt    third.txt   past.txt

Para retornar apenas os arquivos que começam com l seguido por qualquer caractere único e os caracteres st.txt, usamos o caractere curinga ponto de interrogação (?):

$ ls l?st.txt
last.txt    lest.txt    list.txt

Apenas os arquivos last.txt, lest.txt e list.txt são exibidos, pois correspondem aos critérios dados.

Da mesma maneira,

$ ls ??st.txt
last.txt    lest.txt    list.txt    past.txt

exibe os arquivos cujos nomes iniciam com quaisquer dois caracteres seguidos pelo texto st.txt.

Caracteres entre chaves

Os curingas entre colchetes correspondem a qualquer ocorrência do(s) caractere(s) entre colchetes:

$ ls l[aef]st.txt
last.txt    lest.txt

Este comando listaria todos os arquivos começando com l seguido por qualquer um dos caracteres do conjunto aef e terminando com st.txt.

Os colchetes também podem indicar intervalos:

$ ls l[a-z]st.txt
last.txt    lest.txt    list.txt

Esse comando exibe todos os arquivos com nomes começando com l seguido por qualquer letra minúscula no intervalo de a a z e terminando com st.txt.

Também podemos definir múltiplos intervalos entre colchetes:

$ ls
student-1A.txt  student-2A.txt  student-3.txt
$ ls student-[0-9][A-Z].txt
student-1A.text student-2A.txt

A lista mostra um diretório escolar com uma lista de alunos registrados. Para listar apenas os alunos cujos números de registro, é preciso atender aos seguintes critérios:

  • começa com student-

  • seguido por um número e um caractere em maiúscula

  • e termina com .txt

Combinando caracteres curinga

Os caracteres curinga podem ser combinados, como em:

$ ls
last.txt    lest.txt    list.txt    third.txt   past.txt
$ ls [plf]?st* 
last.txt    lest.txt    list.txt    past.txt

O primeiro componente curinga ([plf]) corresponde a qualquer um dos caracteres p, l ou f. O segundo componente curinga (?) corresponde a qualquer caractere único. O terceiro componente curinga (*) corresponde a zero, uma ou múltiplas ocorrências de qualquer caractere.

$ ls
file1.txt file.txt file23.txt fom23.txt
$ ls f*[0-9].txt
file1.txt file23.txt fom23.txt

O comando anterior exibe todos os arquivos que começam com a letra f, seguido por qualquer conjunto de letras, pelo menos uma ocorrência de um dígito e termina com .txt. Observe que file.txt não é exibido, pois não corresponde a esses critérios.

Exercícios Guiados

  1. Considere a listagem abaixo:

    $ ls -lh
    total 60K
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Desktop
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Documents
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Downloads
    -rw-r--r--  1   frank   frank     21    Sep 7   12:59   emp_name
    -rw-r--r--  1   frank   frank     20    Sep 7   13:03   emp_salary
    -rw-r--r--  1   frank   frank   8.8K    Apr 1   2018    examples.desktop
    -rw-r--r--  1   frank   frank     10    Sep 1   2018    file1
    -rw-r--r--  1   frank   frank     10    Sep 1   2018    file2
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Music
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Pictures
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Public
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Templates
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Videos
    • O que o caractere d representa na saída?

    • Por que os tamanhos são mostrados no formato legível por humanos?

    • Qual seria a diferença na saída se ls fosse usado sem argumento?

  2. Considere o comando abaixo:

    $ cp /home/frank/emp_name /home/frank/backup
    • O que aconteceria ao arquivo emp_name se esse comando fosse executado com sucesso?

    • Se emp_name fosse um diretório, qual opção precisaria ser adicionada a cp para executar o comando?

    • Se cp fosse alterado para mv, quais seriam os resultados esperados?

  3. Considere a listagem:

    $ ls
    file1.txt file2.txt file3.txt file4.txt

    Qual caractere curinga ajudaria a remover todo o conteúdo deste diretório?

  4. Com base na listagem anterior, quais arquivos seriam exibidos com o comando a seguir?

    $ ls file*.txt
  5. Complete o comando adicionando os dígitos e caracteres entre os colchetes, de modo listar todo o conteúdo acima:

    $ ls file[].txt

Exercícios Exploratórios

  1. Em seu diretório inicial, crie arquivos chamados dog e cat.

  2. Ainda no diretório inicial, crie um diretório chamado animal. Mova dog e cat para dentro de animal.

  3. Vá à pasta Documents em seu diretório inicial e, dentro dela, crie o diretório backup.

  4. Copie animal e seu conteúdo para backup.

  5. Renomeie animal em backup como animal.bkup.

  6. O diretório /home/lpi/databases contém muitos arquivos, dentre os quais: db-1.tar.gz, db-2.tar.gz e db-3.tar.gz. Qual comando podemos usar para listar apenas os arquivos mencionados acima?

  7. Considere a listagem:

    $ ls
    cne1222223.pdf cne12349.txt cne1234.pdf

    Usando um único caractere de globbing, qual comando removeria apenas os arquivos pdf?

Resumo

Nesta lição, exploramos como visualizar o que está dentro de um diretório com o comando ls, como copiar (cp) arquivos e pastas e como movê-los (mv). Também vimos como novos diretórios podem ser criados com o comando mkdir. Os comandos para remover arquivos (rm) e pastas (rmdir) também foram abordados.

Nesta lição, você também aprendeu sobre o globbing de arquivos e caracteres curinga. O globbing de arquivo é usado para representar vários nomes de arquivo usando caracteres especiais chamados curingas. Estes são os caracteres curinga básicos e seus significados:

? (interrogação)

representa uma única ocorrência de qualquer caractere.

[ ] (caracteres entre colchetes)

representa qualquer ocorrência do(s) caractere(s) inseridos nos colchetes.

* (asterisco)

representa zero, uma ou mais ocorrências de qualquer caractere.

Podemos incluir qualquer combinação desses caracteres curinga na mesma instrução.

Respostas aos Exercícios Guiados

  1. Considere a listagem abaixo:

    $ ls -lh
    total 60K
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Desktop
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Documents
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Downloads
    -rw-r--r--  1   frank   frank     21    Sep 7   12:59   emp_name
    -rw-r--r--  1   frank   frank     20    Sep 7   13:03   emp_salary
    -rw-r--r--  1   frank   frank   8.8K    Apr 1   2018    examples.desktop
    -rw-r--r--  1   frank   frank     10    Sep 1   2018    file1
    -rw-r--r--  1   frank   frank     10    Sep 1   2018    file2
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Music
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Pictures
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Public
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Templates
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Videos
    • O que o caractere d representa na saída?

      d é o caractere que identifica um diretório.

    • Por que os tamanhos são mostrados no formato legível por humanos?

      Por causa da opção -h.

    • Qual seria a diferença na saída se ls fosse usado sem argumento?

      Seriam mostrados apenas os nomes dos diretórios e arquivos.

  2. Considere o comando abaixo:

    $ cp /home/frank/emp_name /home/frank/backup
    • O que aconteceria ao arquivo emp_name se esse comando fosse executado com sucesso?

      emp_name seria copiado em backup.

    • Se emp_name fosse um diretório, qual opção precisaria ser adicionada a cp para executar o comando?

      -r

    • Se cp fosse alterado para mv, quais seriam os resultados esperados?

      emp_name seria movido para backup. Ele não estaria mais presente no diretório inicial do usuário frank.

  3. Considere a listagem:

    $ ls
    file1.txt file2.txt file3.txt file4.txt

    Qual caractere curinga ajudaria a remover todo o conteúdo deste diretório?

    O asterisco *.

  4. Com base na listagem anterior, quais arquivos seriam exibidos com o comando a seguir?

    $ ls file*.txt

    Todos eles, já que o asterisco representa qualquer número de caracteres.

  5. Complete o comando adicionando os dígitos e caracteres entre os colchetes, de modo listar todo o conteúdo acima:

    $ ls file[].txt

    file[0-9].txt

Respostas aos Exercícios Exploratórios

  1. Em seu diretório inicial, crie arquivos chamados dog e cat.

    $ touch dog cat
  2. Ainda no diretório inicial, crie um diretório chamado animal. Mova dog e cat para dentro de animal.

    $ mkdir animal
    $ mv dog cat -t animal/
  3. Vá à pasta Documents em seu diretório inicial e, dentro dela, crie o diretório backup.

    $ cd ~/Documents
    $ mkdir backup
  4. Copie animal e seu conteúdo para backup.

    $ cp -r animal ~/Documents/backup
  5. Renomeie animal em backup como animal.bkup.

    $ mv animal/ animal.bkup
  6. O diretório /home/lpi/databases contém muitos arquivos, dentre os quais: db-1.tar.gz, db-2.tar.gz e db-3.tar.gz. Qual comando podemos usar para listar apenas os arquivos mencionados acima?

    $ ls db-[1-3].tar.gz
  7. Considere a listagem:

    $ ls
    cne1222223.pdf cne12349.txt cne1234.pdf

    Usando um único caractere de globbing, qual comando removeria apenas os arquivos pdf?

    $ rm *.pdf

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

Próxima Lição

103.3 Gerenciamento básico de arquivos (103.3 Lição 2)

Ir para a próxima lição

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

A LPI é uma organização sem fins lucrativos.

© 2023 O Linux Professional Institute (LPI) é um organismo de apoio aos profissionais de Open Source e referência mundial em certificação. Com mais de 200.000 pessoas certificadas, somos o principal organismo de certificação independente para Linux e Open Source do mundo. O LPI certificou profissionais de mais de 180 países, oferece exames em diversos idiomas e tem centenas de parcerias de formação em todo o globo.

Nossa missão é proporcionar oportunidades econômicas e criativas para todos, tornando universalmente acessível a certificação de conhecimentos e competências em matéria de Open Source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Entre em Contato
  • Política de Privacidade e Cookies

Encontrou um erro ou quer ajudar a aprimorar esta página? Escreva pra nós.

© 1999–2023 The Linux Professional Institute Inc. Todos os direitos reservados.