Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Curso de Inglês Online

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Como localizar e salvar links simbólicos

Colaboração: Aurelio Marinho Jargas

Data de Publicação: 28 de Agosto de 2002

Às vezes por causa de algum 'cp' descuidado, copia-se apenas os arquivos e ficam faltando os links simbólicos. ou ainda, como saber quais são os links simbólicos de um determinado diretório e para onde eles apontam. a resposta é mais simples do que se imagina: find.

assim como "-type d" procura apenas por diretórios, o find possui a opção "-type l" para procurar links simbólicos. então já sabemos como encontrar quais são os links. resta saber para onde eles apontam.

o find do GNU possui a opção -printf, que possui vários

     %k   tamanho do arquivo em Kbytes
     %p   nome completo do arquivo (dirname+basename)
     %f   nome do arquivo (basename)
     %h   nome do diretório (dirname)
     %m   permissões do arquivo
     %l   destino do link simbólico

"man find" tem todos os outros.

então para saber quais são os links simbólicos de um diretório e para onde eles apontam, basta um:

  prompt$ find /etc -type l -printf "%p -> %l\n"
  /etc/sysconfig/network-scripts/ifdown -> ../../../sbin/ifdown
  /etc/sysconfig/network-scripts/ifup -> ../../../sbin/ifup
  /etc/versão-conectiva -> conectiva-release
  /etc/rc.d/init.d/smb -> /usr/sbin/samba
  /etc/rc.d/init.d/linuxconf-setup ->
  /usr/lib/linuxconf/conectiva/scripts/S99linuxconf
  /etc/rc.d/rc0.d/S00killall -> ../init.d/killall
  /etc/rc.d/rc0.d/S01halt -> ../init.d/halt
  /etc/rc.d/rc0.d/K80random -> ../init.d/random
  /etc/rc.d/rc0.d/K75netfs -> ../init.d/netfs
  /etc/rc.d/rc0.d/K90network -> ../init.d/network
  ...[e continua]

abusando só um pouquinho dessa poderosa possibilidade, podemos "salvar" o estado atual dos links simbólicos, gerando um script para reconstruí-los caso necessário:

    #!/bin/sh
    # ln-save - gera um script de reconstrução de symlinks
  
    echo 'OLDPWD=$PWD'
    find "${1:-.}" -type l \
      -printf "echo %l; cd %h; ln -s %l %f; cd \$OLDPWD\n"

exemplo de uso:

  prompt$ cd /etc ; ln-save > /tmp/reconstroi-links.sh
  prompt$ cd /etc-novo ; sh /tmp/reconstroi-links.sh
  http://aurelio.net

Veja a relação completa dos artigos de Aurelio Marinho Jargas

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.98/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1334 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Lan University

Submarino.com.br

Encontre imóveis, apartamentos e casas a venda no Imobilien
Saiba mais

 

 

Procure pela casa ou apartamento ideal à venda ou para aluguel na busca inteligente do Imohoo
Buscar imóveis