Criando links para arquivos e diretórios no Linux

Publicado por Perfil removido em 27/02/2010

[ Hits: 113.854 ]

 


Criando links para arquivos e diretórios no Linux



Este é um dos grandes recursos dos sistemas Unix-like, no nosso caso o GNU/Linux Ubuntu - criar links para arquivos e diretórios (um recurso semelhante também existe no Windows, mas não é tão conhecido, nem tão usado e muito menos tão robusto, e eu não sei como faz lá). A aplicação mais usual no GNU/Linux para este recurso e no referenciamento de bibliotecas.

Por exemplo, se você instalou o banco de dados Firebird tendo como base o pacote firebird2.1-super, ele vai ter instalado a biblioteca libfbclient na pasta /usr/lib com o nome de libfbclient.so.2.1.2 - programas como a ferramenta de administração de banco de dados FlameRobin irão fazer uso dessa biblioteca normalmente, porém a IDE Lazarus e os programas que você fizer e compilar nela vão procurar pela biblioteca libfbclient.so, logo, não a encontrarão.

Você não vai renomear o arquivo original (isso seria uma gambiarra feia e poderia afetar os outros programas), ao invés disso vamos criar um link lá para o nosso primeiro arquivo com o nome que o segundo arquivo deveria ter para que as tais aplicações a encontrem, assim, quando os programas que precisarem da libfbclient.so procurarem por ela irão bater no link (que, entenda, não é um simples atalho, é mais como um espelho que representa fielmente o arquivo), que por sua vez irá referenciar a libfbclient.so.2.1.2. O comando pra criar este link ficaria assim, é só digitar no Terminal:

sudo ln -s /usr/lib/libfbclient.so.2.1.2 /usr/lib/libfbclient.so

Um exemplo mais amplo e fantástico é o link com diretórios. Assim, temos a nossa pasta original e então criamos um link que será o espelho dela - os arquivos reais estão na pasta original, mas todas as alterações que fizermos nela serão mostradas na pasta espelho e vice-versa, porém quem vale é a original, se a pasta espelho for excluída não acontece nada com a original, mas se a original for excluída, logicamente, o link ficará órfão e ao tentar acessar esta pasta espelho dará erro.

Se você programa em C++ usando o Eclipse, por exemplo, criando as telas com o Glade e tiver colocado os arquivos .glade junto com os arquivos de código fonte na pasta do projeto C++, na hora que compilar o Eclipse criará uma pasta Debug na pasta e irá colocar lá o executável binário compilado, se você executar o programa por dentro do Eclipse pelos comandos Run ou Debug no menu Run vai ocorrer tudo bem, pois o Eclipse levará em consideração o caminho da pasta do projeto, porém se você for lá na pasta e tentar abrir o executável direto ele não encontrará os arquivos, pois logicamente que neste caso o caminho é onde o executável está. Então, para que você não precise sempre copiar a pasta com os arquivos .glade é só criar um link pra ela na pasta onde está o executável. Veja o meu exemplo:

sudo ln -s /home/pedro/workspace/GFP/glade /home/pedro/workspace/GFP/Debug/glade

Em resumo, a sintaxe do comando é esta:

sudo ln -s /original /link

Original em: http://pedro-araujo.com/

Outras dicas deste autor

Instalando a famosa Avant Window Navigator no Ubuntu Gutsy

Resolver problema "Got error 127 from table handler" no MySQL

Dicionário de significados Micha Elvis

Screenshot em qualquer gerenciador com Captura

Mantendo sua conexão discada ativa

Leitura recomendada

Fontes True type no Linux

Descompactando arquivos RAR com erro de "Codificação inválida"

Forçando a Recuperação do Boot e/ou dos Sistemas de Arquivos. 2022.

resize2fs: Permission denied to resize filesystem [RESOLVIDO]

Dimensionando partição superior a 2TB

  

Comentários
[1] Comentário enviado por Zirou em 14/08/2015 - 18:16h

Obrigado amigo me ajudou. :D

[2] Comentário enviado por tiago4171 em 11/11/2015 - 11:29h

Massa, editei o FSTAB para montar as partições automaticamente e o ponto de montagem estava muito distante. Agora tá tudo a 2 clicks.
Vlw, dica massa

[3] Comentário enviado por saxsoares em 13/01/2017 - 18:31h

Alguem sabe me dizer se tem como criar links para um diretório de uma forma que, quando acessados, mostrem o caminho todo e não o do link?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts