physique - supprimer lien symbolique linux




Comment symlink un fichier sous Linux? (12)

Création de liens symboliques ou de liens logiques sous Linux:

Ouvrez l'invite Bash et tapez la commande ci-dessous pour créer un lien symbolique vers votre fichier:

A) Allez dans le dossier où vous voulez créer un lien logiciel et tapez la commande comme mentionné ci-dessous :

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

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

B) Allez dans le chemin de votre nouveau nom de fichier et tapez :

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

Exemple:

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

Je veux faire un lien symbolique sous Linux. J'ai écrit cette commande bash où le premier chemin est le dossier que je veux lier dans et le deuxième chemin est la source compilée.

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

Est-ce correct?


À la question originale:

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

Cela créera en effet un lien symbolique ( -s ) à partir du fichier / répertoire:

<basebuild>/IpDome-kernel/kernel

à votre nouveau lien

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

Voici quelques façons de vous rappeler:

D'abord, il y a la http://linux.die.net/man/1/ln . Vous pouvez y accéder en effectuant une recherche sur "man ln" dans google, ou simplement ouvrir une fenêtre de terminal et taper man ln et vous obtiendrez les mêmes informations. La page de manuel indique clairement:

ln [OPTION] ... [-T] TARGET LINK_NAME (1er formulaire)

Si devoir rechercher ou lire une page de manuel à chaque fois n'est pas pour vous, vous aurez peut-être plus de facilité à vous rappeler que toutes les commandes nix fonctionnent de la même manière :

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

cp copie un fichier qui existe actuellement (le premier argument) dans un nouveau fichier (le deuxième argument).
mv déplace un fichier existant (le premier argument) vers un nouvel emplacement (le second argument)
De même, http://linux.die.net/man/1/ln lie un fichier existant (le premier argument) à un nouveau lien (le deuxième argument) *

La dernière option que je voudrais suggérer est que vous pouvez créer vos propres pages de manuel faciles à lire et faciles à trouver / à retenir. Faites simplement un script shell simple qui vous donne l'indice dont vous avez besoin. Par exemple :

Dans votre fichier .bash_aliases, vous pouvez placer quelque chose comme:

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

alias 'cmds'=commandsfx

Ensuite, quand vous en avez besoin, depuis la ligne de commande, tapez simplement cmds et vous obtiendrez la syntaxe correcte d'une manière que vous pourrez rapidement lire et comprendre. Vous pouvez rendre ces fonctions aussi avancées que vous le souhaitez pour obtenir les informations dont vous avez besoin, c'est à vous de décider. Vous pouvez même les rendre interactifs, il vous suffit de suivre les instructions ... quelque chose comme:

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

alias 'symlink'=makesymlink

* - bien évidemment ils peuvent tous prendre des paramètres différents et faire des choses différentes et peuvent travailler aussi bien sur des fichiers que des répertoires ... mais la prémisse est la même
♦ - exemples utilisant le shell bash


C'est donc je suppose que vous voulez du code:

Tout le code suivant suppose que vous voulez créer un lien symbolique nommé /tmp/link qui lie à /tmp/realfile .

ATTENTION : Bien que ce code vérifie les erreurs, il ne vérifie pas si /tmp/realfile existe réellement! C'est parce qu'un lien mort est toujours valide et selon votre code vous pourriez (rarement) vouloir créer le lien avant le vrai dossier.

Shell (bash, zsh, ...)

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

Vraiment simple, tout comme vous le feriez sur la ligne de commande (qui est le shell). Toutes les erreurs de traitement sont effectuées par l'interpréteur shell. Ce code suppose que vous avez un interpréteur shell actif dans /bin/sh .

Si nécessaire, vous pouvez toujours implémenter votre propre gestion des erreurs en utilisant le $? variable qui ne sera définie que sur 0 si le lien a été créé avec succès.

C et C ++

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

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

symlink ne renvoie que 0 lorsque le lien peut être créé. Dans d'autres cas, j'utilise perror pour en dire plus sur le problème.

Perl

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

Ce code suppose que vous avez un interpréteur perl 5 dans /usr/bin/perl . symlink ne renvoie que 1 si le lien peut être créé. Dans d'autres cas, j'imprime la raison de l'échec à la sortie d'erreur standard.


Comment créer un lien symbolique dans vagabond. Pas:

  1. Dans un fichier vagabond, créez un dossier synchronisé. Par exemple config.vm.synced_folder "F: / Sunburst / source / sunburst / lms", "/ source" F: / Sunburst / source / sunburst / lms: - où le code source, / source: - chemin du répertoire à l'intérieur du vagabond
  2. Vagrant et tapez ssh errant et aller au répertoire source par exemple source cd
  3. Vérifiez que la structure de votre dossier de code source est disponible dans le répertoire source. par exemple / source / local
  4. Ensuite, allez dans le répertoire de la machine invité où se trouvent les fichiers associés au navigateur. Après avoir sauvegardé le fichier. par exemple sudo mv local local_bk
  5. Créez ensuite un lien symbolique, par exemple sudo ln -s / source / local local. nom de lien local moyen (nom du dossier dans la machine invité que vous allez lier) si vous devez supprimer le lien symbolique: - Tapez sudo rm local

J'aimerais présenter une version plus claire des descriptions déjà présentées.

 ln -s  /path-text/of-symbolic-link  /path/to/file-to-hold-that-text

La commande "ln" crée un lien-FICHIER, et le "-s" spécifie que le type de lien sera symbolique. Un exemple de fichier de lien symbolique peut être trouvé dans une installation WINE (en utilisant "ls -la" pour afficher une ligne du contenu du répertoire):

 lrwxrwxrwx 1 me power 11 Jan  1 00:01 a: -> /mnt/floppy

Les informations standard sur les fichiers sont à gauche (bien que le premier caractère soit un "l" pour "lien"); le nom de fichier est "a:" et le "->" indique également que le fichier est un lien. Il indique essentiellement à WINE comment Windows "Drive A:" doit être associé à un lecteur de disquette sous Linux. Créer réellement un lien symbolique SIMILAIRE à cela (dans le répertoire courant, et pour le faire réellement pour WINE est plus compliqué, utilisez l'utilitaire "winecfg"):

 ln -s  /mnt/floppy  a:   //will not work if file a: already exists

Je trouve un peu confus les terminologies "target" et "directory" dans les informations man.

La cible est le dossier vers lequel nous symlinkons et le répertoire le lien symbolique réel (pas le répertoire que vous allez symlinker), si quelqu'un éprouve la même confusion, ne vous sentez pas seul.

C'est mon interprétation de la création d'un lien symbolique (sous Linux):

ln -s /FULL/PATH/FOLDER-OR-FILE-SYMLINKING-TO NAME-OF-YOUR-SYMLINK

Vous pouvez accéder au dossier dans lequel vous souhaitez créer le lien symbolique et exécuter la commande ou spécifier le CHEMIN FULL pour votre lien symbolique au lieu de NAME-OF-YOUR-SYMLINK.

cd /FULL/PATH/TO/MY-SYMLINK-PARENT-FOLDER
ln -s /FULL/PATH/FOLDER-OR-FILE-SYMLINKING-TO NAME-OF-YOUR-SYMLINK

OU

ln -s /FULL/PATH/FOLDER-OR-FILE-SYMLINKING-TO /FULL/PATH/TO/MY-SYMLINK-PARENT-FOLDER/NAME-OF-YOUR-SYMLINK

J'espère que cela aidera ceux (encore) légèrement confus.


Pour créer un nouveau lien symbolique (échouera si le lien symbolique existe déjà):

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

Pour créer ou mettre à jour un lien symbolique:

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

Si vous êtes dans le répertoire où vous souhaitez créer un lien symbolique, ignorez le second chemin.

cd myfolder
ln -s target

Cela créera un lien symbolique de la target dans myfolder .

Syntaxe générale

ln -s TARGET LINK_NAME

ln -s EXISTING_FILE_OR_DIRECTORY SYMLINK_NAME

ln -s TARGET LINK_NAME

Où le -s rend symbolique.



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