Eu quero fazer um link simbólico no Linux. Eu escrevi este comando Bash em que o primeiro caminho é a pasta na qual eu quero vincular e o segundo caminho é a fonte compilada.
ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal
Isso está correto?
Respostas:
Para criar um novo link simbólico (falhará se o link simbólico já existir):
Para criar ou atualizar um link simbólico:
fonte
ln
sintaxe é semelhante àcp
sintaxe, por exemplo, destino de origem .cp
éCoPy
,ln
éLiNk
. Primeira e terceira letras.Onde o
-s
torna simbólico.fonte
unlink LINK_NAME
ln -s where-the-symlink-should-point where-to-place-the-symlink-itself
.rm
, mas a maioria das pessoas não sabe remover o final/
.fonte
Você pode dar uma olhada na página de manual aqui:
http://linux.die.net/man/1/ln
fonte
(Como uma imagem ASCII vale mais que mil caracteres.)
Uma flecha pode ser um mnemônico útil, especialmente porque é quase exatamente o que parece na direção de Emacs.
E um panorama geral para não confundir com a versão do Windows
Linux:
Janelas:
Você também pode olhar para eles como
O
from-here
ainda não deveria existir, deve ser criado, enquanto oto-here
já deveria existir (IIRC).(Eu sempre me confundo se vários comandos e argumentos devem envolver um local preexistente ou um a ser criado.)
Edição: Ainda está afundando lentamente para mim; Eu tenho outra maneira que escrevi nas minhas anotações.
fonte
dired
, é super fácil, pois você coloca o cursor sobre o seu destino, pressionaS
e digita o diretório onde deseja que o link seja criado. Reduz a diferença entre imaginar o resultado desejado e digitar. Consulte gnu.org/software/emacs/manual/html_node/emacs/… .http://unixhelp.ed.ac.uk/CGI/man-cgi?ln
fonte
man ln
, como chama #ln -s TARGET LINK_NAME
Para a pergunta original:
Isso realmente criará um link simbólico (
-s
) a partir do arquivo / diretório:para o seu novo link
Aqui estão algumas maneiras de ajudar você a se lembrar:
Primeiro, há a página de manual para
ln
. Você pode acessá-lo através da pesquisa "man ln" no google ou basta abrir uma janela do terminal e digitarman ln
e obterá as mesmas informações. A página do manual afirma claramente:Se precisar pesquisar ou ler uma página de manual sempre que não for para você, talvez seja mais fácil lembrar que todos os comandos nix funcionam da mesma maneira:
cp
copia um arquivo que existe atualmente (o primeiro argumento) para um novo arquivo (o segundo argumento).mv
move um arquivo que existe atualmente (o primeiro argumento) para um novo local (o segundo argumento)Da mesma forma,
ln
vincula um arquivo que existe atualmente (o primeiro argumento) a um novo link (o segundo argumento) *A opção final que eu gostaria de sugerir é que você pode criar suas próprias páginas de manual que são fáceis de ler e fáceis de encontrar / lembrar. Basta criar um script de shell simples que ofereça a dica de que você precisa. Por exemplo ♦ :
No seu arquivo .bash_aliases, você pode colocar algo como:
Então, quando você precisar, na linha de comando, digite
cmds
e você receberá de volta a sintaxe correta de uma maneira que possa ler e entender rapidamente. Você pode tornar essas funções tão avançadas quanto desejar para obter as informações de que precisa, depende de você. Você pode até torná-los interativos, basta seguir as instruções .. algo como:* - bem, obviamente, todos eles podem ter parâmetros diferentes, fazer coisas diferentes e podem trabalhar em arquivos e diretórios ... mas a premissa é a mesma
♦ - exemplos usando o shell bash
fonte
fonte
Criando links simbólicos ou soft links no Linux:
Abra o prompt do Bash e digite o comando abaixo mencionado para criar um link simbólico para o seu arquivo:
A) Vá para a pasta em que deseja criar um link virtual e digite o comando conforme mencionado abaixo :
B) Vá para o caminho do seu novo arquivo e digite :
$ ls -lrt (To see if the new-file is linked to the file or not)
Exemplo:
fonte
ln -s sourcepath linkpathname
Nota:
-s cria links simbólicos em vez de links físicos
fonte
Se você estiver no diretório em que deseja criar o link simbólico, ignore o segundo caminho.
Ele criará um link simbólico de
target
dentromyfolder
.Sintaxe geral
fonte
Este é Stack Overflow, então eu suponho que você queira código:
Todo o código a seguir pressupõe que você deseja criar um link simbólico denominado ao
/tmp/link
qual está vinculado/tmp/realfile
.CUIDADO : Embora esse código verifique se há erros, NÃO verifica se
/tmp/realfile
realmente existe! Isso ocorre porque um link morto ainda é válido e, dependendo do seu código, você pode (raramente) querer criar o link antes do arquivo real.Shell (bash, zsh, ...)
Muito simples, assim como você faria na linha de comando (que é o shell). Todo o tratamento de erros é feito pelo interpretador de shell. Esse código pressupõe que você tenha um interpretador de shell em funcionamento
/bin/sh
.Se necessário, você ainda pode implementar seu próprio tratamento de erros usando a
$?
variável que só será definida como 0 se o link tiver sido criado com sucesso.C e C ++
symlink
retorna apenas 0 quando o link pode ser criado. Em outros casos, estou usandoperror
para contar mais sobre o problema.Perl
Este código pressupõe que você tenha um intérprete perl 5 em
/usr/bin/perl
.symlink
retorna 1 apenas se o link puder ser criado. Em outros casos, estou imprimindo o motivo da falha na saída de erro padrão.fonte
Eu gostaria de apresentar uma versão em inglês mais claro das descrições já apresentadas.
O comando "ln" cria um link-FILE e o "-s" especifica que o tipo de link será simbólico. Um exemplo de arquivo de link simbólico pode ser encontrado em uma instalação do WINE (usando "ls -la" para mostrar uma linha do conteúdo do diretório):
Informações padrão sobre informações de arquivo estão à esquerda (embora observe que o primeiro caractere é um "l" para "link"); o nome do arquivo é "a:" e o "->" também indica que o arquivo é um link. Ele basicamente diz ao WINE como o Windows "Drive A:" deve ser associado a uma unidade de disquete no Linux. Para criar um link simbólico SIMILAR a ele (no diretório atual, e fazer isso para o WINE é mais complicado; use o utilitário "winecfg"):
fonte
Para criar um link simbólico / link virtual, use:
por exemplo:
fonte
Existem dois tipos de links:
links simbólicos: consulte um caminho simbólico indicando a localização abstrata de outro arquivo
links físicos: consulte o local específico dos dados físicos.
No seu caso, os links simbólicos:
você pode consultar http://man7.org/linux/man-pages/man7/symlink.7.html
você pode criar links muito rígidos
Um link físico para um arquivo é indistinguível da entrada do diretório original; quaisquer alterações em um arquivo são efetivamente independentes do nome usado para fazer referência ao arquivo. Os links físicos normalmente não se referem a diretórios e podem não abranger sistemas de arquivos.
fonte
Os links são basicamente de dois tipos:
Links simbólicos (soft): vincula a um caminho simbólico indicando a localização abstrata de outro arquivo
Links físicos: link para o local específico dos dados físicos.
Exemplo 1:
O exemplo acima é um exemplo de um link físico no qual você pode ter uma cópia dos seus dados físicos.
Exemplo 2:
O comando acima criará um link simbólico para file1.txt.
Se você excluir um arquivo de origem, não terá nada para o destino no software.
Quando você faz:
ls -lai
Você verá que há um número de inode diferente para os links simbólicos.
Para mais detalhes, você pode ler a página de manual do ln no seu sistema operacional Linux.
fonte
hard link where you can have a copy of your physical data
Acho que não criamos cópia de dados físicos. Apenas outro nome para os mesmos dados físicos.Acho um pouco confuso as terminologias "target" e "directory" nas informações do homem.
O destino é a pasta na qual estamos ligando o link simbólico e o diretório o link simbólico real (não o diretório para o qual você enviará o link simbólico); se alguém estiver enfrentando a mesma confusão, não se sinta sozinho.
Esta é minha interpretação de criar um link simbólico (em linux):
Você pode navegar para a pasta em que deseja criar o link simbólico e executar o comando ou especificar o CAMINHO COMPLETO para o link simbólico em vez de NAME-OF-YOUR-SYMLINK.
OU
Espero que isso ajude aqueles (ainda) um pouco confusos.
fonte
Como criar link simbólico no vagrant. Passos:
fonte