Comandos Linux para Totós – Tutorial nº25

Ora vivam caros linuxianos!!! Cá estamos nós para o primeiro artigo de 2012 da rubrica “Comandos Linux para Totós”. Como sabemos os atalhos (links) são funcionalidades do sistema operativo que facilitam o acesso aos ficheiros/directórios. Hoje vamos aprender a diferença entre hard links e soft links e como os criar no Linux.

totos_00

Antes de passarmos à prática, apenas um apontamento para que saibam diferenciar Hard links de soft links:

Um link, num sistema de ficheiros, permite representar/referenciar um mesmo ficheiro em mais que um directório.

Hard link (ligação real)

  • Possibilidade de incluir o mesmo ficheiro (com o mesmo nome ou nome diferente) em mais que um directório. Na prática é como se fosse uma cópia exacta do ficheiro. Ao contrário de um simples copiar de ficheiros, quando alteramos a informação num hardlink ou ficheiro original,  todos os outros hardlinks irão também reflectir essa informação. Os hardlink têm o mesmo i-node ( um i-node contém todas as características do ficheiro, excepto o nome que figura no (ou nos) directórios onde o i-node é incluído. Para ver o i-node de um determinado ficheiro/directório basta executar o comando ls –li)

Soft link (ligação simbólica)

  • Possibilidade de Incluir num directório o nome de outro ficheiro que contém o caminho para o ficheiro original
Como criar Hard links e Soft Links?

A criação de Hard links e Soft Links no Linux é realizado usando o comando ln

Exemplo 1 : Criar Soft links

Para criar um soft link basta usar o comando ln –s <ficheiro_origem> <nome_link_simbolico>. Vamos então criar um soft link com o nome pplware_soft  para o ficheiro pplware

[root@egitux ~]# ln –s pplware pplware_soft
[root@egitux ~]# ls -li
139281 -rw-r--r--. 2 root root      82 Jan 23 12:04 ppinto
139281 -rw-r--r--. 2 root root      82 Jan 23 12:04 ppinto_hard
139284 lrwxrwxrwx. 1 root root       6 Jan 23 11:48 ppinto_soft -> ppinto
139413 -rw-r--r--. 1 root root      82 Jan 23 12:04 pplware
139420 lrwxrwxrwx. 1 root root       7 Jan 23 12:01 pplware_soft -> pplware

Como podem ver, foi criado simbólico que aponta para o ficheiro original. O soft link tem um i-node diferente (139420),  do ficheiro original (139413), as permissões não são mantidas e o tamanho é também menor que o do ficheiro original.

Exemplo 2 : Criar Hard links

Para criar um hard link basta usar o comando ln <ficheiro_origem> <nome_link_simbolico>. Vamos então criar um hard link com o nome pplware_hard para o ficheiro pplware

[root@egitux ~]# ln pplware pplware_hard
[root@egitux ~]# ls -li
139281 -rw-r--r--. 2 root root      82 Jan 23 12:04 ppinto_hard
139284 lrwxrwxrwx. 1 root root       6 Jan 23 11:48 ppinto_soft -> ppinto
139413 -rw-r--r--. 2 root root      82 Jan 23 12:04 pplware
139413 -rw-r--r--. 2 root root      82 Jan 23 12:04 pplware_hard
139420 lrwxrwxrwx. 1 root root       7 Jan 23 12:01 pplware_soft -> pplware

Ao contrário dos soft links, nos hard links existe uma referencia real para o ficheiro original sendo mantido o mesmo inode (139413) . As propriedades, e permissões do ficheiro são mantidas, com excepção do nome. Caso se proceda à alteração das permissões ou conteúdo de um hardlink, todos os outros (incluindo o ficheiro original) serão actualizados.

Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos contributos? Alguém quer contribuir com artigos? mail me :)

Artigos relacionados

  
     Pin It  

Arquivado na categoria: Linux, Tutoriais


7 Comentários

  1. Pedro, no hard link tens de tirar o -s do ln.

    Cumps

  2. Acho que faltou dizer que num hard link como ambos apontam para o mesmo i-node, se o original for removido os dados podem à mesmo serem acedidos no link.
    Ah e que o emacs por default estraga os soft links mas isso só é um problema para os geeks :D

  3. Atalhos muito úteis, fartinho de os usar no Android ;)

  4. No caso de copiarmos o hardlink para outra pasta, este perde o link, certo?
    Caso se queira um hardlink em outro local diferente da pasta do original, teremos de realizar o hardlink com o destino pretendido.

  5. Confesso que uso e abuso dos sym links mas nunca tinha usado os hard links.

    Sinceramente nem estou a ver um caso prático para o aplicar…

    Além disso, acho um bocado perigoso, pois fazendo ls não conseguimos ver que é um link.

    Alguém pode dar um exemplo prático (real) em que seja útil um hard link?

  6. Só uma nota, hardlinks não podem ser feitos entre mount-points diferentes, apenas dentro da mesmas partição, por razões óbvias explicadas no artigo.

Deixe o seu comentário

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. O autor deste site reserva-se, desde já, o direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.