103.3 Gestão básica de ficheiros
Resumo Conciso
Criação e cópia de ficheiros e directórios
| Comando | Descrição |
|---|---|
cp | Copia ficheiros e directórios |
-p | Preserva permissões, data/hora e proprietário |
-i | Pergunta antes de sobrescrever |
-u | Copia apenas se o ficheiro fonte for mais novo |
-r | Cópia recursiva de directórios |
mkdir | Cria directórios |
-p | Cria directórios pais intermediários se necessário |
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óriosMovimentação e remoção de ficheiros e directórios
| Comando | Descrição |
|---|---|
mv | Move ou renomeia ficheiros/directórios |
-i | Pergunta antes de sobrescrever |
-f | Força (não pergunta, ignora -i) |
-u | Move apenas se o ficheiro fonte for mais novo |
rm | Remove ficheiros |
-i | Pergunta antes de remover |
-r | Remove directórios recursivamente |
-f | Força (ignora -i) |
Perigo: rm -r /* — Exclui todo o conteúdo do disco! Nunca execute como root.
mv file1 file2/file3 # Move ficheiro para directóriomv file1 file2 # Renomeia ficheirorm file1 # Remove ficheirorm -r dir1/ # Remove directório e conteúdoEncontrando ficheiros
| Comando | Descrição |
|---|---|
find | Busca em directórios e subdirectórios |
locate | Busca no banco de dados mlocate.db |
updatedb | Atualiza o banco de dados do locate |
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.
Links de ficheiros
Para uma cobertura completa de hard links e links simbólicos, ver T22 — Criar e alterar links simbólicos e hardlinks.
| Comando | Descrição |
|---|---|
ln | Cria links físicos (hard links) |
ln -s | Cria links simbólicos (soft links) |
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:
$ ls -l /etc/hosts$ cp -p /etc/hosts .$ ls -l hosts# Dados (data/hora) e proprietário preservadosExercí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:
$ mkdir -p /usr/local/binExercício Guiado 3 — Mover com perguntas
Enunciado: Mova file1 para file2 pedindo confirmação antes de sobrescrever.
Solução:
$ mv -i file1 file2Exercício Guiado 4 — Remover directório recursivamente
Enunciado: Remova o diretório dir1/ e todo o seu conteúdo.
Solução:
$ rm -r dir1/Exercício Guiado 5 — Procurar ficheiros modificados
Enunciado: Encontre ficheiros com nome log.txt modificados nos últimos 7 dias.
Solução:
$ find . -name "log.txt" -mtime -7Exercício Guiado 6 — Criar link simbólico
Enunciado: Crie um link simbólico file2 que aponte para file1.
Solução:
$ ln -s file1 file2Exercícios Exploratórios
- Copiar
/etc/hostsmantendo data/hora e proprietário:
$ $ cp -p /etc/hosts /tmp/hosts$ $ ls -l /tmp/hosts- Criar directórios em cadeia:
$ $ mkdir -p /tmp/teste/a/b/c- Mover com sobrescrita forçada:
$ $ mv -f file1 file2- Listar apenas directórios:
$ $ find . -type d- Listar ficheiros modificados hoje:
$ $ find . -type f -mtime -1- Criar directório e subdirectórios de uma vez:
$ $ mkdir -p man/man1 man/man5 man/man8- Procurar ficheiros por tamanho:
$ $ find . -type f -size +10M