Linuxでハードリンクを使用してファイルをリンクする

Linuxには2種類のリンクを作成できます:

シンボリックリンクは、Windows内のデスクトップショートカットによく似ています。 シンボリックリンクは単にファイルの場所を指しています。

シンボリックリンクを削除しても、リンクが指している物理ファイルには影響しません。

シンボリックリンクは、現在のファイルシステム上のファイルまたは実際には他のファイルシステムを指すことができます。 これにより、ハードリンクよりも柔軟になります。

ハードリンクは実際にはリンクされているが同じ名前のファイルです。 それを考える最も簡単な方法は次のとおりです。

あなたがロバートという名前で生まれたと想像してください。 他の人があなたをRobbie、Bob、Bobby、Robのように知っているかもしれません。 それぞれの人は同じ人物について話しています。

各リンクはリンクのカウンターに1を加えます。これは物理ファイルを削除することを意味し、リンクのそれぞれを削除する必要があります。

なぜハードリンクを使用するのですか?

ハードリンクは、ファイルを効率的に整理する方法を提供します。 これを説明する最も簡単な方法は、古いセサミストリートのエピソードです。

バートはアーニーにすべてのことを整理するように言ったので、アーニーは彼の仕事について決めました。 まず第一に、彼はすべての赤いものを整理することに決めました。 "消防車は赤いです"。 だからアーニーは消防車を遠ざける。

次に、アーニーはすべてのおもちゃを車輪で捨てることにします。 消防車は車輪を持っています。 だからアーニーは消防車を整理した。

言うまでもなく、Bertは以前とまったく同じような混乱を見つけるために家に帰ったが、Ernieは消防車を半ダースほど整えた。

消防車が消防車の写真だったとします。 次のように、マシン上に異なるフォルダを作成することができます。

これで、写真のコピーを作成して各フォルダに入れることができました。 これは、同じファイルの3つのコピーを3倍のスペースで占有していることを意味します。

写真をコピーして分類すると余分なスペースを取らないかもしれませんが、同じことをビデオで試してみると、ディスク容量が大幅に減ります。

ハードリンクはまったくスペースを必要としません。 したがって、ディスク容量を削減することなく、さまざまなカテゴリ(つまり、年、ジャンル、出演者、監督)で同じビデオを保存することができます。

ハードリンクを作成する方法

次の構文を使用してハードリンクを作成できます。

ln path / to / file / path / to / hard / link

たとえば、上記の画像では、/ home / gary / Music / Alice Cooper / TrashというパスにTrashというAlice Cooperミュージックフォルダがあります。 そのフォルダには10曲があり、そのうちの1曲は古典的な毒です。

今度はPoisonがロックトラックなので、ミュージックフォルダの下にRockというフォルダを作成し、次のファイルを入力してPoisonへのハードリンクを作成しました:

ln "01 - Poison.mp3" "〜/ Music / rock / Poison.mp3"

これは音楽整理するための良い方法です。

ハードリンクとシンボリックリンクの違いを教える方法

lsコマンドを使用すると、ファイルにハードリンクがあるかどうかを知ることができます。

ls -lt

リンクのない標準ファイルは次のようになります

-rw-r - r-- 1 gary gary 1000 12月18 21:52 poison.mp3

列は次のとおりです。

これがハードリンクの場合、出力は次のようになります。

-rw-r - r-- 2ゲイリー・ゲイリー1000 12月18 21:52 poison.mp3

リンク数に2が表示されていることに注意してください。ハードリンクが作成されるたびにその数が増えます。

シンボリックリンクは次のようになります。

-rw-r - r-- 1 gary gary 1000 12月18 21:52 poison.mp3 - > poison.mp3

あるファイルが別のファイルを指していることがはっきり分かります。

すべてのハードリンクをファイルに見つける方法

Linuxシステムのすべてのファイルには、ファイルを一意に識別するiノード番号が含まれています。 ファイルとそのハードリンクには同じiノードが含まれます。

ファイルのiノード番号を調べるには、次のコマンドを入力します。

ls -i

1つのファイルの出力は次のようになります。

1234567 filename

ファイルのハードリンクを見つけるには、同じinode(つまり、1234567)のすべてのファイルをファイル検索するだけです。

あなたは次のコマンドでそれを行うことができます:

〜/ -xdev -inumを見つけよう1234567