LinuxでのSymlinkチュートリアル–シンボリックリンクを作成および削除する方法

シンボリックリンク(シンボリックリンクとも呼ばれます)は、Linuxでは、コンピューター上の別のファイルまたはフォルダーを指すファイルの一種です。シンボリックリンクは、Windowsのショートカットに似ています。

一部の人々は、「ハードリンク」ではなく、シンボリックリンクを「ソフトリンク」(Linux / UNIXシステムのリンクの一種)と呼んでいます。

ソフトリンクとハードリンクの違い

ソフトリンクはショートカットに似ており、任意のファイルシステム内の別のファイルまたはディレクトリを指すことができます。

ハードリンクはファイルやフォルダのショートカットでもありますが、別のファイルシステムのフォルダやファイルにハードリンクを作成することはできません。

シンボリックリンクの作成と削除に関連する手順を見てみましょう。また、壊れたリンクとは何か、およびそれらを削除する方法についても説明します。

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

シンボリックリンクを作成するための構文は次のとおりです。

ln -s   

lnリンクコマンドです。この-sフラグは、リンクをソフトにする必要があることを指定します。-sとして入力することもできます-symbolic

デフォルトでは、lnコマンドはハードリンクを作成します。次の議論はpath to the file (or folder)あなたがリンクしたいということです。(つまり、ショートカットを作成するファイルまたはフォルダーです。)

そして最後の引数はpath to linkそれ自体(ショートカット)です。

ファイルのシンボリックリンクを作成する方法–コマンド例

ln -s /home/james/transactions.txt trans.txt 

このコマンドを実行すると、/home/james/transactions.txtwithにアクセスできるようになりますtrans.txt。を変更するtrans.txtと、元のファイルにも反映されます。

上記のこのコマンドtrans.txtは、現在のディレクトリにリンクファイルを作成することに注意してください。次のフォルダにリンクファイルを作成することもできます。

ln -s /home/james/transactions.txt my-stuffs/trans.txt 

現在のディレクトリにはすでに「my-stuffs」というディレクトリが存在する必要があります。そうでない場合、コマンドはエラーをスローします。

フォルダのシンボリックリンクを作成する方法–コマンドの例

上記と同様に、以下を使用します。

ln -s /home/james james 

これにより、の内容を含む「james」というシンボリックリンクされたフォルダが作成されます/home/james。このリンクされたフォルダへの変更は、元のフォルダにも影響します。

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

シンボリックリンクを削除する前に、ファイルまたはフォルダがシンボリックリンクであることを確認して、ファイルを改ざんしないようにすることをお勧めします。

これを行う1つの方法は次のとおりです。

ls -l  

ターミナルでこのコマンドを実行すると、ファイルのプロパティが表示されます。その結果、最初の文字が小文字のL( 'l')の場合、ファイル/フォルダーがシンボリックリンクであることを意味します。

また、シンボリックリンクが指しているファイル/フォルダーを示す矢印(->)が最後に表示されます。

シンボリックリンクを削除するには、次の2つの方法があります。

リンク解除を使用してシンボリックリンクを削除する方法

構文は次のとおりです。

unlink  

これにより、プロセスが成功した場合にシンボリックリンクが削除されます。

シンボリックリンクがフォルダの形式であっても、「/」を追加しないでください。Linuxはそれをディレクトリと見なし、ディレクトリをunlink削除できないためです。

rmを使用してシンボリックリンクを削除する方法

これまで見てきたように、シンボリックリンクは元のファイルまたはフォルダーを指す単なる別のファイルまたはフォルダーです。その関係を削除するには、リンクされたファイルを削除します。

したがって、構文は次のとおりです。

rm  

例えば:

rm trans.txt rm james 

rm james/Linuxは「james /」がディレクトリであると想定するため、実行しようとするとエラーが発生することに注意してください。これには、rやなどの他のオプションが必要になりfます。しかし、それは私たちが望んでいることではありません。シンボリックリンクはフォルダの場合がありますが、ここでは名前のみを考慮します。

rmoverの主な利点はunlink、ファイルの場合と同様に、一度に複数のシンボリックリンクを削除できることです。

壊れたリンクを見つけて削除する方法

リンク切れは、シンボリックリンクが指すファイルまたはフォルダーがパスを変更するか、削除されたときに発生します。

たとえば、「transactions.txt」がから/home/jamesに移動する/home/james/personalと、「trans.txt」リンクが壊れます。ファイルにアクセスしようとすると、「そのようなファイルまたはディレクトリはありません」というエラーが発生します。これは、リンクに独自のコンテンツがないためです。

壊れたリンクを見つけたら、ファイルを簡単に削除できます。壊れたシンボリックリンクを見つける簡単な方法は次のとおりです。

find /home/james -xtype l 

これによりjames、ファイルからディレクトリ、サブディレクトリまで、ディレクトリ内の壊れたシンボリックリンクがすべて一覧表示されます。

-deleteオプションを渡すと、次のように削除されます。

find /home/james -xtype l -delete 

まとめ

シンボリックリンクは、LinuxおよびUNIXシステムの興味深い機能です。

簡単にアクセスできるシンボリックリンクを作成して、他の方法ではアクセスしにくいファイルまたはフォルダーを参照できます。少し練習すれば、これらが直感的なレベルでどのように機能するかを理解し、ファイルシステムの管理をはるかに効率的にすることができます。