Table of Contents

Links simbólicos e físicos

No sistema UNIX há um tipo de arquivo que é o link que faz ligações de um arquivo para outro e o qual pode ser chamado de link físico (hard link) ou link simbólico (soft link).

Usaremos o soft link quando quisermos fazer uma referência simples um caminho muito longo, poupando assim a digitação. Por padrão, a permissão de qualquer link sempre será 0777, mesmo que o arquivo para qual ele aponte seja diferente.

Para criar um link simbólico para um arquivo no mesmo local (diretório):

# ls /etc/ > lista

<codebash> # ln -svf lista simbolico “simbolico” → “lista” </code>

# ls -l simbolico 
lrwxrwxrwx 1 root root 5 Mai 28 19:00 simbolico -> lista

Agora em outro diretório:

# ls /etc/ > /tmp/origem
# ln -sfv /tmp/origem destino
“destino” ->/tmp/origem”
# ls -la destino 
lrwxrwxrwx 1 root root 11 Mai 28 19:04 destino -> /tmp/origem

A diferença entre o hard link e um soft link é que o soft link precisa do parâmetro “-s”, e o link simbólico serve para arquivos e diretórios e o link físico serve apenas para arquivos, mas a filosofia é a mesma. Vamos supor supor que o arquivo teste.txt tenha 20 MB e ele seja importante. Mas ficar duplicando um arquivo somente para ter uma cópia de segurança e ficar gastando 40 MB do disco rígido não é muito interessante. Então, nesse caso, você cria um hard link.

O que acontece aqui é que temos um link físico que aponta para o arquivo teste.txt e os dois possuem o mesmo conteúdo. Se um dos arquivos for alterado, será afetado o outro também. Não é possível ter dois arquivos com o mesmo inode, mas com o link físico ocorre essa situação, que é uma exceção à regra. Para esse caso é como se um arquivo tivesse dois nomes, já que o inode dele é o mesmo.

# ln -fv lista hardlink
“hardlink” => “lista”

Usando a flag “-i” do comando ls podemos visualizar os inodes:

# ls -li hardlink lista 
652 -rw-r--r-- 2 root root 1243 Mai 28 19:00 hardlink
652 -rw-r--r-- 2 root root 1243 Mai 28 19:00 lista