ホームページ >システムチュートリアル >Linux >Linux でシンボリック リンクを作成する方法 [完全ガイド]

Linux でシンボリック リンクを作成する方法 [完全ガイド]

WBOY
WBOY転載
2024-02-09 14:21:231062ブラウズ

シンボリック リンクは、ソフト リンクまたはシンボリック リンクとも呼ばれ、特別な種類のファイルです。これは、別のファイルまたはディレクトリを指す Windows のショートカットに似ています。シンボリック リンクの作成は、実際のファイルのエイリアスを作成することと同じです。

シンボリック リンクにアクセスすると、実際にはシンボリック リンクが指すターゲット ファイルにアクセスすることになります。リンクされたファイルの内容を変更すると、実際のターゲット ファイルの内容に影響します。

シンボリック リンクを表示するには、ls コマンドを -l オプションとともに使用します。それらは次のとおりです:

リーリー 如何在 Linux 中创建符号链接 [完整指南]

シンボリック リンクは、ファイルを整理および共有するための便利な方法を提供します。これらは、長くてわかりにくいディレクトリ パスへの高速アクセスを提供します。これらは、Linux でライブラリをリンクするために頻繁に使用されます。

シンボリック リンクについてある程度理解できたので、シンボリック リンクの作成方法を見てみましょう。

Linux でシンボリック リンクを作成する方法

リンク名から ターゲット ファイル へのシンボリック リンクを作成するには、次のように -s オプションを指定して ln コマンドを使用します。 リーリー ここでは

-s オプションが重要です。リンクをソフト リンクとして決定します。これを使用しない場合、ハードリンクが作成されます。ソフトリンクとハードリンクの違いについては、別の記事で説明します。

シンボリック リンクを追跡する方法

リンクが実際に指している実際のファイルを知るには、realpath コマンドを使用します。

リーリー

ソース ファイルへのソフト リンクを追跡する方法は他にもありますが、realpath が最も簡単です。

如何在 Linux 中创建符号链接 [完整指南]

シンボリック リンクを削除する方法

Linux にはシンボリック リンクを削除するための特別なコマンドはありません。ファイルやディレクトリの削除に使用するのと同じ rm コマンドを使用できます。

  • うわー
如何在 Linux 中创建符号链接 [完整指南]リンクを削除しても、リンク先のソース ファイルは削除されません。

1 つのコマンドで複数のシンボリック リンクを削除することもできます:

  • うわー
リンク解除コマンドもあります。ただし、名前から受ける印象とは異なり、unlink コマンドは特にリンクを削除するために使用されるわけではありません。もちろん、ファイル、フォルダー、リンクを削除することもできます。ただし、これには一定の制限があるため、リンクを削除する場合でも rm コマンドの方が適しています。

💡find コマンドを使用してシンボリック リンクを一覧表示する場合は、*-type l オプションを使用できます。 *

シンボリックリンクに関する注意事項

シンボリック リンクは混乱を招く場合があるため、注意すべき点がいくつかあります。

リンクに加えられた変更は元のファイルに反映されます

結局のところ、それがリンクの目的全体です。リンクにアクセスすると目的のファイルにアクセスできます。リンクを通じてターゲット ファイルに変更を加えることができます。例を見てみましょう。

newdir/test_dir にファイル prog.py があります。次のプロパティがあります:

┌──(linuxmi㉿linuxmi)-[~]
└─$ ln -s /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py test
如何在 Linux 中创建符号链接 [完整指南]

以下是新创建链接的属性:

lrwxrwxrwx 1 linuxmi linuxmi     44  2月 1日 19:24 test -> /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py

注意到行首的 l(是 L,不是一 1)了吗?如果你熟悉 Linux 中的文件权限,你就会知道’l’表示链接,因此它告诉你这个文件实际上是一个链接。提个醒,- 表示文件,d 表示目录。

现在,如果我使用此链接更改内容或属性,同样会反映在目标文件中。例如,我在软链接上使用 touch 命令,你会注意到它改变了目标文件的时间戳。

┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ touch test
                                                                           
┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ ls -l /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py
-rw-r--r-- 1 linuxmi linuxmi 1926  2月 1日 19:27 /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py

它链接到文件还是目录?你可能不知道!

您如何知道链接指向的是文件还是目录?在您按照路径访问目标文件本身之前,您无法知道这一点。

您可以创建指向不存在的文件或目录的链接

是的,这完全有可能。这就是为什么在 Linux 中创建软链接时应该小心的原因。您链接到的目标文件不需要存在。创建指向不存在的文件/目录的链接时,您不会收到任何错误或警告。

ls 命令仍然有效。仅当您尝试通过链接或单独访问目标文件时才会出现错误。

┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ ln -s non_existant_dir link_dir
                                                                           
┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ less link_dir
link_dir: 没有那个文件或目录
如何在 Linux 中创建符号链接 [完整指南]

符号链接是使用 777 权限创建的,但它没有任何意义

您是否注意到符号链接上的文件权限?符号链接始终使用 777 权限 (rwxrwxrwx) 创建。对于常规文件,这意味着任何人都可以访问该文件。但链接并非如此。

lrwxrwxrwx 1 linuxmi linuxmi 11 2月 1日 18:58 linuxmi.md -> linuxmi.dat
如果链接上的文件权限按原样处理,任何用户都可以创建指向安全文件的符号链接并自由访问它。那将是一个主要的安全问题。值得庆幸的是,这不会发生。因为目标文件的权限很重要,而不是链接的权限。

您可以使用 chmod 命令更改链接的权限,但它会更改链接文件的权限,而不是链接本身。

您可以链接到一个链接的链接,也就是链式符号链接

您可以创建指向另一个链接的符号链接等等。这称为链式符号链接。最好避免使用它们,因为它会造成更多混乱。

嗯,就是这样。我假设您现在对软链接有了更好的了解,并且您知道如何在 Linux 中创建符号链接。您也可以查看 symlinks 命令,它可以帮助您在 Linux 中找到损坏的符号链接并轻松管理它们。

以上がLinux でシンボリック リンクを作成する方法 [完全ガイド]の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlxlinux.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。