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.
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
- Comandos Linux para Totós – Tutorial nº1 – Comandos básicos
- Comandos Linux para Totós – Tutorial nº2 – Comandos básicos
- Comandos Linux para Totós – Tutorial nº3 – Criar ficheiros/directórios/subdirectórios
- Comandos Linux para Totós – Tutorial nº4 – Output de um ls -l
- Comandos Linux para Totós – Tutorial nº5 – Permissões em Linux
- Comandos Linux para Totós – Tutorial nº6 – Tar – Compactação e descompactação
- Comandos Linux para Totós – Tutorial nº7 – Processos
- Comandos Linux para Totós – Tutorial nº8 – RunLevels
- Comandos Linux para Totós – Tutorial nº9 – Estrutura de Directórios
- Comandos Linux para Totós – Tutorial nº10 – Copiar e a mover ficheiros entre directório
- Comandos Linux para Totós – Tutorial nº11 – Redireccionamento de entradas e saídas
- Comandos Linux para Totós – Tutorial nº12 – Visualizar o conteúdo de um ficheiro
- Comandos Linux para Totós – Tutorial nº13 – Criar utilizadores
- Comandos Linux para Totós – Tutorial nº14 – Criar alias
- Comandos Linux para Totós – Tutorial nº15 – Ficheiros com informação dos utilizadores
- Comandos Linux para Totós – Tutorial nº16 – Criar grupos no Linux
- Comandos Linux para Totós – Tutorial nº17 – Modificar/Apagar utilizadores e grupos
- Comandos Linux para Totós – Tutorial nº18 – Copiar ficheiros entre PCs Linux com o SCP
- Comandos Linux para Totós – Tutorial nº19 – Instalar programas através do código fonte
- Comandos Linux para Totós – Tutorial nº20 – Pré-programação de tarefas com o crontab
- Comandos Linux para Totós – Tutorial nº21 – Configuração de parâmetros de rede
- Comandos Linux para Totós – Tutorial nº22 – Como correr um script no Linux?
- Comandos Linux para Totós – Tutorial nº23 – Como procurar ficheiros e directórios
- Comandos Linux para Totós – Tutorial nº24 – Logs - registo de evento
Este artigo tem mais de um ano
Pedro, no hard link tens de tirar o -s do ln.
Cumps
yups. thanks
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 😀
Atalhos muito úteis, fartinho de os usar no Android 😉
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.
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?
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.