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