Saltar para o conteúdo
101 · LPIC-1 (parte 1)

103.3 Gestão básica de ficheiros

TópicoT12ObjetivoGerir ficheiros e directórios, incluindo criação, cópia, movimentação, remoção, links e pesquisaPeso2PáginasLPIC-1 (101) - Version 5.0

Resumo Conciso

Criação e cópia de ficheiros e directórios

ComandoDescrição
cpCopia ficheiros e directórios
-pPreserva permissões, data/hora e proprietário
-iPergunta antes de sobrescrever
-uCopia apenas se o ficheiro fonte for mais novo
-rCópia recursiva de directórios
mkdirCria directórios
-pCria directórios pais intermediários se necessário
bash
cp file1 file2                    # Cópia simplescp -p file1 file2                 # Preserva atributoscp -r dir1/ dir2/                 # Cópia recursivamkdir -p /usr/local/bin           # Cria directórios intermediáriosmkdir man/man1 man/man5           # Cria múltiplos directórios

Movimentação e remoção de ficheiros e directórios

ComandoDescrição
mvMove ou renomeia ficheiros/directórios
-iPergunta antes de sobrescrever
-fForça (não pergunta, ignora -i)
-uMove apenas se o ficheiro fonte for mais novo
rmRemove ficheiros
-iPergunta antes de remover
-rRemove directórios recursivamente
-fForça (ignora -i)

Perigo: rm -r /* — Exclui todo o conteúdo do disco! Nunca execute como root.

bash
mv file1 file2/file3              # Move ficheiro para directóriomv file1 file2                    # Renomeia ficheirorm file1                          # Remove ficheirorm -r dir1/                       # Remove directório e conteúdo

Encontrando ficheiros

ComandoDescrição
findBusca em directórios e subdirectórios
locateBusca no banco de dados mlocate.db
updatedbAtualiza o banco de dados do locate
bash
find / -name "xorg.conf" 2>/dev/nullfind . -name "log.txt" -mtime -7find . -type f -name "*.txt"locate -i "tutorial"find /home -user jo -name "*.pdf"

Expressões de teste do find: -name, -type, -mtime, -user, -size, -perm, -o (OR), -a (AND), -not, -newer, -exec, -print.

Para uma cobertura completa de hard links e links simbólicos, ver T22 — Criar e alterar links simbólicos e hardlinks.

ComandoDescrição
lnCria links físicos (hard links)
ln -sCria links simbólicos (soft links)
bash
ln file1 file2                    # Hard linkln -s file1 file2                 # Soft link (atalho)ls -li file1 file2                # Verifica inodes iguais (hard)readlink file2                    # Mostra para onde aponta (soft)
  • Hard links compartilham o mesmo inode, são independentes do original
  • Soft links possuem inodes próprios, dependem do caminho original

Exercícios Guiados

Exercício Guiado 1 — Copiar e preservar atributos

Enunciado: Copie /etc/hosts para o diretório atual preservando a data/hora e o proprietário.

Solução:

bash
$ ls -l /etc/hosts$ cp -p /etc/hosts .$ ls -l hosts# Dados (data/hora) e proprietário preservados

Exercício Guiado 2 — Criar directórios recursivamente

Enunciado: Crie o caminho /usr/local/bin mesmo que os directórios intermédios não existam.

Solução:

bash
$ mkdir -p /usr/local/bin

Exercício Guiado 3 — Mover com perguntas

Enunciado: Mova file1 para file2 pedindo confirmação antes de sobrescrever.

Solução:

bash
$ mv -i file1 file2

Exercício Guiado 4 — Remover directório recursivamente

Enunciado: Remova o diretório dir1/ e todo o seu conteúdo.

Solução:

bash
$ rm -r dir1/

Exercício Guiado 5 — Procurar ficheiros modificados

Enunciado: Encontre ficheiros com nome log.txt modificados nos últimos 7 dias.

Solução:

bash
$ find . -name "log.txt" -mtime -7

Enunciado: Crie um link simbólico file2 que aponte para file1.

Solução:

bash
$ ln -s file1 file2

Exercícios Exploratórios

  1. Copiar /etc/hosts mantendo data/hora e proprietário:
bash
$  $ cp -p /etc/hosts /tmp/hosts$  $ ls -l /tmp/hosts
  1. Criar directórios em cadeia:
bash
$  $ mkdir -p /tmp/teste/a/b/c
  1. Mover com sobrescrita forçada:
bash
$   $ mv -f file1 file2
  1. Listar apenas directórios:
bash
$  $ find . -type d
  1. Listar ficheiros modificados hoje:
bash
$  $ find . -type f -mtime -1
  1. Criar directório e subdirectórios de uma vez:
bash
$  $ mkdir -p man/man1 man/man5 man/man8
  1. Procurar ficheiros por tamanho:
bash
$  $ find . -type f -size +10M