usar - enviar varios arquivos via ftp linux




Como ligar um arquivo no Linux? (12)

Eu quero fazer um link simbólico no Linux. Eu escrevi este comando bash onde o primeiro caminho é a pasta que eu quero ligar e o segundo caminho é a fonte compilada.

ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal 

Isso está correto?


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) Ir para a pasta onde você deseja criar um link e digite o comando como mencionado abaixo :

$ ln -s (path-to-file) (symbolic-link-to-file)

$ ln -s /home/user/file new-file

B) Vá para o caminho do nome do novo arquivo e digite :

$ ls -lrt (To see if the new-file is linked to the file or not)

Exemplo:

ls -lrt

lrwxrwxrwx 1 user user 24 Aug 6 23:40 new-file -> /home/user/file

Note: Where, A -> B Means, A is symbolically linked to B


(Porque uma imagem ASCII vale mais que mil caracteres.)

Uma flecha pode ser um mnemônico útil, especialmente porque é quase exatamente como parece no dired do Emacs.

E grande figura para que você não fique confuso com a versão do Windows

Linux:

ln -s target <- linkName

Janelas:

mklink linkName -> target

Você também pode ver isso como

ln -s "to-here" <- "from-here"
mklink "from-here" -> "to-here"

O from-here não deveria existir ainda, é para ser criado, enquanto o to-here já deveria existir (IIRC).

(Sempre me confundo se vários comandos e argumentos devem envolver um local pré-existente ou outro a ser feito.)

EDIT: ainda está afundando lentamente para mim; Eu tenho outra maneira que escrevi em minhas anotações.

ln -s (target exists) (link is made)
mklink (link is made) (target exists)

Como criar symlink no vagrant. Passos:

  1. No arquivo vagrant crie uma pasta sincronizada. por exemplo, config.vm.synced_folder "F: / Sunburst / fonte / sunburst / lms", "/ fonte" F: / Sunburst / fonte / sunburst / lms: - onde o código-fonte, / source: - caminho do diretório dentro do vagrant
  2. Vagrant up e digite vagrant ssh e vá para o diretório fonte, por exemplo, cd source
  3. Verifique se a estrutura da pasta do código-fonte está disponível no diretório de origem. eg / source / local
  4. Em seguida, vá para o diretório da máquina convidada, onde estão os arquivos associados ao navegador. Depois de obter backup do arquivo. por exemplo, sudo mv local local_bk
  5. Em seguida, crie o symlink, por exemplo, sudo ln -s / source / local local. nome do link médio local (nome da pasta na máquina de convidado que você vai vincular) se você precisar remover o link simbólico: - Digite sudo rm local

Existem dois tipos de links:

links simbólicos: referem-se a um caminho simbólico que indica a localização abstrata de outro arquivo

links físicos: consulte a localização específica dos dados físicos.

No seu caso, links simbólicos:

ln -s source target

você pode consultar http://man7.org/linux/man-pages/man7/symlink.7.html

você pode criar links muito difíceis

Um link rígido para um arquivo é indistinguível da entrada de diretório original; Quaisquer alterações em um arquivo são efetivamente independentes do nome usado para referenciar o arquivo. Links físicos normalmente não se referem a diretórios e podem não abranger sistemas de arquivos.

ln source link

Isso é , então eu suponho que você quer código:

Todo o código a seguir pressupõe que você deseja criar um link simbólico chamado /tmp/link com links para /tmp/realfile .

CUIDADO : Embora este código verifique se há erros, ele NÃO verifica se /tmp/realfile realmente existe! Isso ocorre porque um link inativo ainda é válido e, dependendo do seu código, você pode (raramente) criar o link antes do arquivo real.

Shell (bash, zsh, ...)

#!/bin/sh
ln -s /tmp/realfile /tmp/link

Muito simples, assim como você faria na linha de comando (que é o shell). Todo o tratamento de erros é feito pelo interpretador de shell. Este código supõe que você tenha um interpretador de shell em funcionamento em /bin/sh .

Se necessário, você ainda pode implementar seu próprio tratamento de erros usando o $? variável que só será definida como 0 se o link foi criado com sucesso.

C e C ++

#include <unistd.h>
#include <stdio.h>

int main () {
  if( symlink("/tmp/realfile", "/tmp/link") != 0 )
    perror("Can't create the symlink");
}

symlink só retorna 0 quando o link pode ser criado. Em outros casos, estou usando o perror para contar mais sobre o problema.

Perl

#!/usr/bin/perl
if( symlink("/tmp/realfile", "/tmp/link") != 1) {
  print STDERR "Can't create the symlink: $!\n"
}

Este código assume que você tem um interpretador perl 5 em /usr/bin/perl . symlink só retorna 1 se o link puder ser criado. Em outros casos, estou imprimindo o motivo da falha na saída de erro padrão.


Para a pergunta original:

'ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal'

Isso realmente criará um link simbólico ( -s ) do arquivo / diretório:

<basebuild>/IpDome-kernel/kernel

para o seu novo link

/home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal

Aqui estão algumas maneiras de ajudá-lo a lembrar:

Primeiro, há a http://linux.die.net/man/1/ln . Você pode acessá-lo através da pesquisa "man ln" no google, ou simplesmente abrir uma janela de terminal e digitar man ln e você obterá as mesmas informações. A página man afirma claramente:

Em [OPTION] ... [-T] TARGET LINK_NAME (1º formulário)

Se ter que pesquisar ou ler uma página man sempre não é para você, talvez você tenha mais facilidade em lembrar que todos os comandos nix funcionam da mesma maneira :

cp /file/that/exists /location/for/new/file
mv /file/that/exists /location/its/moving/to
ln /file/that/exists /the/new/link

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, vincula um arquivo que existe atualmente (o primeiro argumento) a um novo link (o segundo argumento) *

A última opção que 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 fazer um script de shell simples que lhe dê a dica de que você precisa. Por exemplo :

No seu arquivo .bash_aliases você pode colocar algo como:

commandsfx() {
    echo "Symlink:  ln -s /path/to/file /path/to/symlink"
    echo "Copy:     cp /file/to/copy /destination/to/send/copy"
}

alias 'cmds'=commandsfx

Então, quando você precisar, na linha de comando, basta digitar cmds e obter a sintaxe correta de uma maneira que você possa ler e entender rapidamente. Você pode tornar essas funções tão avançadas quanto você gostaria de obter o que as informações que você precisa, cabe a você. Você pode até torná-los interativos, então você só precisa seguir os prompts ... algo como:

makesymlink() {
    echo "Symlink name:"
    read sym
    echo "File to link to:"
    read fil
    ln -s $fil $sym
}

alias 'symlink'=makesymlink

* - bem, obviamente, todos eles podem ter parâmetros diferentes e fazer coisas diferentes e podem trabalhar em arquivos, bem como diretórios ... mas a premissa é a mesma
♦ - exemplos usando o shell bash


Para criar um novo symlink (falhará se o symlink já existir):

ln -s /path/to/file /path/to/symlink

Para criar ou atualizar um link simbólico:

ln -sf /path/to/file /path/to/symlink

Se você estiver no diretório em que deseja criar o symlink, ignore o segundo caminho.

cd myfolder
ln -s target

Ele irá criar um link simbólico de target dentro da myfolder .

Sintaxe geral

ln -s TARGET LINK_NAME

ln -s EXISTING_FILE_OR_DIRECTORY SYMLINK_NAME

ln -s TARGET LINK_NAME

Onde o -s torna simbólico.



ln [-Ffhinsv] source_file [target_file]

    link, ln -- make links

        -s    Create a symbolic link.

    A symbolic link contains the name of the file to which it is linked. 

    An ln command appeared in Version 1 AT&T UNIX.




symlink