Linuxでハードリンクとソフトリンクを作成するにはどうすればよいですか?

How Create Hard Link



Linuxオペレーティングシステムでは、ファイルに関するすべての情報がそれぞれのiノードに格納されます。これらのiノードを使用すると、ファイルのすべてのメタデータを知ることができます。 Linuxでファイルへのリンクを作成するという概念があります。これは、一般的なプログラミング言語のほとんどでファイルへのポインターを作成するのと同じです。これらのリンクには、基本的にハードリンクとソフトリンクの2つのタイプがあります。ファイルへのハードリンクは、基本的にファイルの正確なコピーです。つまり、ファイルと実際のファイルへのハードリンクは同じiノードを共有します。ハードリンクを作成する最大の利点は、実際のファイルを誤って削除した場合でも、ハードリンクを介してそのコンテンツにアクセスできることです。

一方、ソフトリンクまたはシンボリックリンクは、ファイルへのポインタまたはショートカットとまったく同じように機能します。これはファイルの正確なコピーではなく、元のファイルを指しているだけです。ファイルへのソフトリンクと実際のファイルのiノード値は異なります。また、実際のファイルをいつでも削除すると、ソフトリンクからその内容にアクセスできなくなります。今日は、Linuxでファイルへのハードリンクとソフトリンクを作成する方法を紹介します。







注:以下に示す方法を説明するために、Linux Mint20を使用しました。



Linux Mint 20でハードリンクを作成する方法:

Linux Mint 20でファイルへのハードリンクを作成するには、以下の手順を実行します。



まず、ターミナルを起動して、ハードリンクを作成するためにLinux Mint20のターミナルを介してコマンドを渡すことができるようにする必要があります。以下にLinuxMint20ターミナルのイメージも添付しました。





次に、現在の作業ディレクトリに存在するすべてのファイルを一覧表示する必要があります。パスを明示的に指定することにより、選択した他のディレクトリに対してこれを行うこともできます。ただし、以下のコマンドでパスを指定する必要がないように、ホームディレクトリを使用することをお勧めします。



$ls-NS

このコマンドは、現在作業している作業ディレクトリのすべての内容を一覧表示します。

ホームディレクトリの内容は、次の画像にも示されています。

次に、ハードリンクを作成する任意のファイルを選択します。上の画像で選択したファイルを強調表示しています。次に、以下に示すコマンドを実行して、awk.txtという名前のファイルのハードリンクを作成しようとします。

$lnawk.txt abc.txt

ここで、最初のファイルはハードリンクを作成するファイルになり、2番目のファイルは作成するハードリンクの名前を指定します。 abc.txt以外の名前を使用できます。

このコマンドを実行した後、lsコマンドを使用して現在の作業ディレクトリの内容をもう一度リストし、ファイルawk.txtへのハードリンクが作成されているかどうかを確認する必要があります。このコマンドを実行すると、次の画像で強調表示されているように、現在の作業ディレクトリにabc.txtという名前のawk.txtの正確なクローンが表示されます。

それを確認する別の方法は、ファイルマネージャアイコンをクリックしてホームディレクトリにアクセスすることです。そこでは、実際には同じテキストファイルの正確なコピーであるabc.txtと一緒にawk.txtを見ることができます。これらのファイルの両方を開いて、内容が同じかどうかを確認することもできます。

Linux Mint 20でソフトリンクを作成する方法:

Linux Mint 20でファイルへのソフトリンクを作成するには、以下の手順を実行します。

上記の方法で行ったように、lsコマンドをもう一度実行して、現在の作業ディレクトリの内容を確認する必要があります。今回は、次の画像で強調表示されているように、ソフトリンクを作成するためにBash.shという名前の別のファイルを選択しました。

ソフトリンクを作成するファイルを選択した後、Linux Mint20ターミナルで以下のコマンドを実行する必要があります。

$ln–s Bash.sh NewBash.sh

ここで、-sフラグは、ファイルへのソフトリンクを作成することを示しています。最初のファイルはソフトリンクが作成されるファイルを参照し、2番目のファイルはソフトリンクの名前または最初のファイルへのポインタを参照します。このファイルのソフトリンクには、任意の名前を付けることができます。

このコマンドを実行した後、lsコマンドを使用して現在の作業ディレクトリの内容をもう一度リストし、ファイルBash.shへのソフトリンクが作成されているかどうかを確認する必要があります。このコマンドを実行すると、次の図で強調表示されているように、現在の作業ディレクトリにあるBash.shという名前のファイルを指すNewBash.shという名前のソフトリンクが表示されます。さらに、強調表示されたエントリにlフラグが表示されます。これは、作成したリンクがファイルへのポインタであり、ファイルの正確なコピーではないことをさらに示しています。

それを確認する別の方法は、ファイルマネージャアイコンをクリックしてホームディレクトリにアクセスすることです。ここで、Bash.shとNewBash.shを見ることができます。これらは、実際には、前のファイルへのソフトリンクです。 NewBash.shファイルにある矢印も表示されます。これは、ファイルBash.shへのショートカットまたはリンクの一種であり、以下の画像で強調表示されている正確なコピーではないことを示しています。

結論:

この記事でファイルへのハードリンクとソフトリンクを作成する方法を説明することにより、要件に応じて、選択した任意のファイルへのこれらのリンクのいずれかを作成できるようになりました。私たちは、これらの方法を可能な限り最も簡単な方法で実証しようとしました。