AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 473928
Accepted
mrc02_kr
mrc02_kr
Asked: 2018-10-09 00:39:25 +0800 CST2018-10-09 00:39:25 +0800 CST 2018-10-09 00:39:25 +0800 CST

ln: cria link simbólico usando outro link simbólico

  • 772

Vamos supor que eu tenha um arquivo e um diretório:

$ ls -l
total 4
drwxrwxr-x. 2 user user 4096 Oct  8 09:53 dir
-rw-rw-r--. 1 user user    0 Oct  8 09:53 file

Eu criei um link simbólico para filechamado symlink1e um link simbólico para dirchamado dirslink1:

$ ls -l
drwxrwxr-x. 2 user user 4096 Oct  8 09:53 dir
lrwxrwxrwx. 1 user user    3 Oct  8 10:03 dirslink1 -> dir
-rw-rw-r--. 5 user user    0 Oct  8 09:53 file
lrwxrwxrwx. 1 user user    4 Oct  8 09:53 symlink1 -> file

Agora eu criei links simbólicos para symlink1usar ln -se ln -sL:

$ ln -s symlink1 symlink2
$ ln -sL symlink1 symlink3
$ ln -s dirslink1 dirslink2
$ ln -sL dirslink1 dirslink3

Agora, tanto quanto eu entendo, symlink3deve apontar para filee dirslink3deve apontar para dir. Mas quando eu verifico, nenhum symlink[23]e dirslink[23]aponta para o arquivo ou diretório original:

$ ls -l
drwxrwxr-x. 2 user user 4096 Oct  8 09:53 dir
lrwxrwxrwx. 1 user user    3 Oct  8 10:03 dirslink1 -> dir
lrwxrwxrwx. 1 user user    9 Oct  8 10:03 dirslink2 -> dirslink1
lrwxrwxrwx. 1 user user    9 Oct  8 10:03 dirslink3 -> dirslink1
-rw-rw-r--. 5 user user    0 Oct  8 09:53 file
lrwxrwxrwx. 1 user user    4 Oct  8 09:53 symlink1 -> file
lrwxrwxrwx. 1 user user    8 Oct  8 09:54 symlink2 -> symlink1
lrwxrwxrwx. 1 user user    8 Oct  8 09:54 symlink3 -> symlink1

A pergunta é: é possível/como crio um link simbólico para o arquivo original usando outro link simbólico?

ln
  • 2 2 respostas
  • 1634 Views

2 respostas

  • Voted
  1. Best Answer
    Stephen Kitt
    2018-10-09T00:48:54+08:002018-10-09T00:48:54+08:00

    -Lsó funciona com links físicos; conforme especificado em POSIX :

    Se a opção -s for especificada, as opções -L e -P serão ignoradas silenciosamente.

    Se você tiver readlink, pode usar isso:

    ln -s -- "$(readlink symlink1)" symlink4
    

    Se você readlinksuporta a -fopção, você pode usar isso para canonizar totalmente o alvo ( ou seja, resolver todos os links simbólicos no caminho do destino, se o link simbólico de destino incluir outros links simbólicos).

    • 10
  2. Stéphane Chazelas
    2018-10-09T00:54:02+08:002018-10-09T00:54:02+08:00

    Você pode usar cp -Ppara fazer uma cópia de um link simbólico:

    cp -P symlink2 symlink3
    

    (assumindo symlink3que ainda não existe como um diretório ou link simbólico para o diretório, veja a -Topção com GNU cppara esses casos).

    Esteja ciente de que, se o destino do link simbólico for relativo, o acima provavelmente resultaria em um link quebrado se a cópia não estiver no mesmo diretório que o original.

    Com zsh,

    ln -s -- symlink2(:P) symlink3
    

    Criaria symlink3como um link simbólico para o caminho canônico completo (sem link simbólico) de symlink2, como, ln -s -- "$(readlink -f symlink2)" symlink3mas mais confiável, pois ainda funcionaria corretamente se esse caminho terminasse em caracteres de nova linha.

    Mesma ressalva acima e mesmo trabalho com GNU ln.

    • 5

relate perguntas

  • Qual é o significado de 'ln -sT' no Linux?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve