next up previous contents
Next: Imprimindo arquivos Up: Manipulação de arquivos Previous: Ordenando o conteúdo de   Sumário

Links

O sistema de arquivos do Unix, implementa o conceito de link. No Unix, criar um link significa apenas em adicionar um entrada na tabela de diretórios que aponta para uma área no disco rígido.

Existem dois tipos de links no Unix: o físico (hard link) e o simbólico (symbolic link).

Cada vez que um hard link é criado, o contador com número de pontos de link que apontam para a relativa área de disco é incrementado. Quando um hard link é destruído (por exemplo, durante a remoção de um arquivo), o contador para a área de disco correspondente ao mesmo é decrementada e, quando o mesmo chega a zero, o kernel desaloca a área de disco para ser utilizada para outros fins. Hard links não podem apontar para diretórios ou arquivos inexistentes no sistema.

O symbolic link, por sua vez, é um arquivo que contém o nome de um arquivo no seu corpo. Cada vez que o kernel encontra um symbolic link, ele substitui o nome do link pelo seu conteúdo e continua a interpretação do arquivo, até encontrar um hard link. Symbolic links podem apontar para quaisquer tipos de arquivos, inclusive inexistentes.

Links podem ser criados no Unix através do comando ln, cuja sintaxe é:

ln [opções] fonte [destino]

Exemplos
de criação de hard link e symbolic link:

Hard link:

maquina:~$ ls -la
maquina:~/financas$ ls -la
total 3
drwxr-xr-x   2 aluno     users        1024 Feb  6 06:31 ./
drwxr-xr-x   4 aluno     users        1024 Feb  5 13:53 ../
-rw-r--r--   1 aluno     users          20 Feb  5 14:52 balanco.txt
maquina:~/financas$ ln balanco.txt hard
maquina:~/financas$ ls -la
total 4
drwxr-xr-x   2 aluno     users        1024 Feb  6 06:32 ./
drwxr-xr-x   4 aluno     users        1024 Feb  5 13:53 ../
-rw-r--r--   2 aluno     users          20 Feb  5 14:52 balanco.txt
-rw-r--r--   2 aluno     users          20 Feb  5 14:52 hard
maquina:~/financas$

Symbolic link:
maquina:~/financas$ ls -la
total 4
drwxr-xr-x   2 aluno     user       1024 Feb  6 06:32 ./
drwxr-xr-x   3 aluno     users      1024 Feb  5 13:53 ../
-rw-r--r--   2 aluno     users        20 Feb  5 14:52 balanco.txt
-rw-r--r--   2 aluno     users        20 Feb  5 14:52 hard
maquina:~/financas$ ln -s balanco.txt soft
maquina:~/financas$ ls -la
drwxr-xr-x   2 aluno     users      1024 Feb  6 06:40 ./
drwxr-xr-x   3 aluno     users      1024 Feb  5 13:53 ../
-rw-r--r--   2 aluno     users        20 Feb  5 14:52 balanco.txt
-rw-r--r--   2 aluno     users        20 Feb  5 14:52 hard
lrwxrwxrwx   1 aluno     users         7 Feb  6 06:40 soft -> balanco.txt
maquina:~/financas$

Como pode ser visto, o hard link de nome hard é apenas mais um apontador para a área de disco previamente apontada por balanco.txt. Caso a entrada balanco.txt seja removida da tabela de diretório, o conteúdo do arquivo para onde tal entrada apontava ainda continuará existindo, visto que a entrada hard ainda continua apontando para lá.


next up previous contents
Next: Imprimindo arquivos Up: Manipulação de arquivos Previous: Ordenando o conteúdo de   Sumário
Agostinho de M. Brito Jr. 2000-09-02