
シンボリックリンクは一般にソフトリンクと呼ばれます またはシンボリックリンク 、これは別のファイルまたはディレクトリを参照する特殊なタイプのファイルです。
このガイドでは、lnコマンドを使用してLinuxでシンボリックリンクを作成し、ファイル間にリンクを作成する方法を学習します。
リンクの種類
Linuxには、ソフトリンクとハードリンクの2種類のリンクがあります。
ハードリンク: ハードリンクは、元のファイルのレプリカです。ターゲットファイル内のデータへのアクセスを提供します。ユーザーは、ファイルに対してのみ、ディレクトリのハードリンクを作成できません。さらに、ハードリンクされたファイルには共通のiノード番号があります。元のファイルが削除または削除されると、ハードリンクは引き続き機能し、削除されたファイルの内容が含まれます。ハードリンクは異なるファイルシステムにまたがらないことに注意することも重要です。
ソフトリンク: ハードリンクとは異なり、ソフトリンクは単にファイル名へのポインタであり、別のファイルの内容や参照されているターゲットファイルは含まれていません。ターゲットファイルが削除または削除されると、ソフトリンクは存在しなくなります。ソフトリンクの良い面は、ファイルまたはディレクトリへのリンクに使用でき、さまざまなファイルシステムにまたがることができることです。
lnコマンドの使用方法
lnコマンドは、ファイル間のリンクを作成するために使用されます。このコマンドは、デフォルトでハードリンクを作成します。ソフトリンクを作成するには、 -sを追加するだけです。 オプション(-シンボリック 。
構文:
ln [OPTION] TARGET LINK_NAME
混乱を避けるために、シンボリックリンクを作成するときは、ソースファイルとターゲットファイルの絶対パス(相対パス)を使用してください。
ファイルへのシンボリックリンクを作成する方法
ファイルへのシンボリックリンクを作成するには、次のコマンドを実行します。
$ ln -s { OPTIONS } file symlink
ファイルとシンボリックリンクの両方が定義されている場合、lnコマンドはファイルからリンクを作成します。 これは、2番目の引数シンボリックリンクで定義されたファイルの最初の引数です。 。
たとえば、ファイルへのシンボリックリンクを作成するには、構文
を使用します。$ ln -s original_file symlink
注:lnは、成功しても出力を返しません。
コマンドで、 original_fileを置き換えます シンボリックリンクとシンボリックリンクを作成する既存のファイルを使用します シンボリックリンク付き。
実際の例を見てみましょう:
$ ln -s file1.txt sample_link.txt
上記のコマンドは、現在のディレクトリにある既存のファイル「file1.txt」への「sample_link.txt」というシンボリックリンクを作成します。
リンクの作成を確認するには、次のようにlsコマンドを使用します。
$ ls -l sample_link.txt
出力は、以下のようになります。
lrwxrwxrwx 1 winnie winnie 9 Jul 12 23:43 sample_link.txt -> file1.txt
権限では、l
フラグは、これがシンボリックリンクであり、文字- >
であることを示します。 シンボリックリンクがファイルfile1.txt
を指していることを示します 。
パスの問題が原因でシンボリックリンクが機能しない場合があります。フルパスを使用することをお勧めします:
# absolute (full path)
ln -s /path/to/originals/originalfile1.txt backup/copy.txt
# relative
cd backup
ln -s ../originals/originalfile1.txt copy.txt
ディレクトリへのシンボリックリンクを作成する方法
ディレクトリへのシンボリックリンクの作成は、ファイルへのシンボリックリンクを作成するのと同じくらい簡単です。構文はほとんど同じです。最初の引数はディレクトリの名前を取り、シンボリックリンクは2番目の引数として指定されます。
以下の構文は、これを実行する方法の例です。
$ ln -s /path/to/directory ~/directory
たとえば、ディレクトリ / Downloads / music /からシンボリックリンクを作成するには 〜/ my_musicへ コマンドを実行します:
$ ln -s /Downloads/music ~/my_music
シンボリックリンクを上書きする方法
lnコマンドを呼び出すだけでシンボリックリンクを上書きする 追加の引数がないと、次のように常にエラーが発生します:
たとえば、次のコマンドをもう一度実行しようとすると:
$ ln -s file1.txt sample_link.txt
表示されるエラーが表示されます:
ln: failed to create symbolic link 'sample_link.txt': File exists
この問題の回避策は、別のオプションを導入することです -f または-force 図のようにシンボリックリンクの宛先パスを上書きするには:
$ ln -sf file1.txt sample_link.txt
今回は、ソフトリンクを上書きしてもエラーは発生しません。
シンボリックリンクを削除する方法
Linuxまたはシンボリックリンクのシンボリックリンクを削除するには、rmコマンドまたは unlinkのいずれかを使用できます。 指図。そして、それは非常に簡単です。 リンク解除の場合 コマンドで、以下の構文を使用してシンボリックリンクを削除します。
$ unlink symlink_to_be_removed
rmコマンドを使用してソフトリンクを削除することは、通常のファイルを削除または削除する場合とまったく同じです。
$ rm symlink_to_be_removed
シンボリックリンクは重要ですか?
次のいずれかを実行する場合は、通常、ファイルへのシンボリックリンクを作成することをお勧めします。
- 重複コピーを作成せずに、複数の場所からファイルにアクセスできます。これにより、必然的に多くのディスク容量が消費される可能性があります。
- ファイルの元のバージョンを保持し、リンクがファイルの最新バージョンを指していることを確認する場合。これが機能するのは、ファイルを同じファイル名の別のファイルに置き換えた後でも、シンボリックリンクがアクティブなままであるためです。
Linuxプログラムは、ユーザーが使用されているコードのバージョンを知る必要がないように、エイリアスとしてシンボリックリンクを使用します。
# which python
/usr/bin/python
# ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 7 Feb 21 13:38 /usr/bin/python -> python2
結論
シンボリックリンクと標準のショートカットは似ていますが、2つの間にいくつかの違いがあります。
Windowsにあるような標準のショートカットは、特定のディレクトリ、ファイル、またはアプリケーションを指す通常のファイルです。このショートカットは通常、任意の場所に作成できるアイコンとして表示され、クリックすると元のファイル、ディレクトリ、またはアプリケーションが開きます。
シンボリックリンクは、実際には機能的な意味で元のファイルを表します。これは、ファイルなどのオブジェクトの直接の代替品です。 Linuxシステムは、Linuxシンボリックリンクをターゲットオブジェクトであるかのように読み取ります。通常のショートカットは、ファイルまたはディレクトリを参照するだけで、他には何もしません。
Linuxでシンボリックリンクを作成する方法については以上です。詳細については、lnmanを参照してください。読んで楽しんでいただければ幸いです。コメントや提案を残してください。