08/04 post-scriptum J'ai reçu des compléments et des corrections dans les commentaires, je vais donc apporter les corrections appropriées.
Quand j'apprenais les commandes shell, j'étais accro au marais des liens symboliques, je vais donc laisser un mémorandum. ~~ Je ne sais pas si c'est la meilleure pratique, mais utilisez autant que possible des chemins absolus pour générer des liens symboliques. ~~
Ce n'est pas une bonne pratique car cela dépend de l'occasion. En effet, si vous souhaitez gérer collectivement les fichiers et les liens de la source de lien, vous serez vulnérable à la modification de l'emplacement d'installation.
Le lien symbolique est l'une des fonctions du système de fichiers du système d'exploitation (OS), et c'est un mécanisme pour créer un autre fichier qui pointe vers un fichier ou un répertoire spécifique et se réfère au corps principal à travers lui. Glossaire informatique e-Words
Nous reconnaissons que les liens symboliques sous Linux sont comme des raccourcis sous Windows.
Le but est similaire, mais la réalité est assez différente. En outre, Windows a également des liens symboliques (en utilisant une fonctionnalité appelée points d'analyse). Les raccourcis ne sont que des lanceurs avec des informations pour ouvrir le fichier spécifié dans l'application, tandis que les liens symboliques sont des fichiers qui peuvent être utilisés comme alternative au fichier spécifié. @angel_p_57
Les commandes utilisées pour créer un lien symbolique sont: hoge.jpg est un nom de fichier arbitraire, fuga est un nom de répertoire arbitraire. Ici, un lien symbolique pour un fichier appelé hoge.jpg est généré dans le répertoire fuga.
$ ln -s hoge.jpg fuga
Remarque: Dans ce cas, "si le répertoire fuga existe déjà", il fonctionnera comme prévu. Sans le répertoire fuga, un lien symbolique nommé fuga serait créé dans le même répertoire.
Si vous définissez $ ln -s hoge.jpg fuga /
, ce sera une commande à exécuter si le répertoire existe.
(J'ai fait référence aux commentaires que j'ai reçus)
~ / Picture / konosuba.jpg lien symbolique, Je veux le générer dans ~ / Picture / foobar.
Supposons que le répertoire courant soit ~ / Picture.
~/Picture $ ln -s konosuba.jpg foobar
konosuba.jpg est généré dans le répertoire foobar, mais Tout d'abord, c'est une erreur.
Le lien symbolique de konosuba.jpg qui existe dans le répertoire courant n'est pas généré dans le dossier foobar spécifié comme chemin relatif ... **. ** **
Le lien symbolique konosuba.jpg généré dans le répertoire foobar est Chemin relatif de votre propre point de vue konosuba.jpg En d'autres termes, pensez à vous référer à konosuba.jpg dans le même répertoire.
En d'autres termes, il crée un fichier mystérieux appelé lien symbolique qui se réfère à lui-même.
(C'est parce que "konosuba.jpg ", qui est le premier argument de la commande shell, est lu comme un chemin relatif basé sur la position du lien symbolique lui-même.)
Supposons que le répertoire courant soit ~ / Picture.
~/Picture $ ln -s ../konosuba1.jpg foobar
konosuba.jpg est généré dans le répertoire foobar. C'est la bonne réponse. Le lien symbolique konosuba.jpg généré dans le répertoire foobar est Il est généré sous la forme d'un lien faisant référence à "../konosuba1.jpg " vu de sa propre position.
Ce n'est peut-être pas un problème si je m'y habitue, mais honnêtement, je me sentais confus.
Dans ce cas, utilisez l'option -r (--relative). La commande déterminera automatiquement la position relative. Avec ln -s hoge.jpg fuga /, le lien symbolique créé fuga / hoge.jpg provoque une référence circulaire et est inutile, mais avec ln -s -r hoge.jpg fuga /, fuga / hoge. Il créera un lien approprié appelé jpg-> ../hoge.jpg. @angel_p_57
$ ln -s ~/Picture/konosuba.jpg ~/Picture/foobar
Avec un chemin absolu, le risque que le référent ne soit pas destiné peut être considérablement réduit. Si la structure des répertoires se complique, j'ai l'impression que ça va être ridicule, mais pour le moment, je ne devrais pas faire d'erreur ...
Je ne me sens pas capable de bien l'écrire, je vais donc faire quelques changements au besoin ...
Premiers pas avec la ligne de commande Linux Ubuntu Manuals
Recommended Posts