Hello there again.K.
Hello there again.K.
では、ハードリンクとは何か、シェルで何をするのか。
ハードリンクは、Linux や他の Unix 系 OS では既存のファイルに対する追加の名前にすぎません。 ハード リンクは、他のハード リンクに作成することもできます。 しかし、ディレクトリに対して作成することはできず、ファイルシステムの境界を越えたり、パーティションにまたがることはできません。
おそらくハードリンクの最も有用なアプリケーションは、ファイル、プログラム、およびスクリプト (つまり短いプログラム) を、元のファイルまたは実行ファイル (つまりプログラムの実行可能バージョン) から別のディレクトリに容易にアクセスできるようにすることです。 ハードリンクの名前を入力すると、元の名前を使用した場合と同じように、プログラムやスクリプトが実行されます。 (http://www.linfo.org/hard_link.html)
この話を後で読みたいですか? Journal.
では、この定義の本当の意味は何でしょうか。 ln file_name hardlink というコマンドを使用すると、既存のファイルへのハード リンクを作成することができます。 以下に、実際にハード リンクを作成する例を示します。 以下の例では、hlink1.8384>
Now lets ls -i
とあるファイルへのショートカット、ハードリンクというものを作りました。 これは inode.
INODE 定義を持つすべてのファイルを一覧表示するようにします。 inode は Unix 系ファイルシステムにおけるデータ構造で、 ファイルやディレクトリのようなファイルシステムオブジェクトを記述するものである。 各inodeには、オブジェクトのデータの属性とディスクブロックの位置が格納される。 ファイルシステムオブジェクトの属性は、所有者とパーミッションデータと同様に、メタデータ (最終変更時刻、アクセス時刻、修正時刻) を含むかもしれません。 ディレクトリは、それ自身、その親、およびその子のそれぞれのためのエントリを含んでいます。 (https://en.wikipedia.org/wiki/Inode)
file1とhlink1を見てみると、左側のinodeは同じであることがわかるでしょう。 本質的に、ハードリンクはハードリンクされたファイルへのショートカットとして機能します。
次に「ソフト リンク」に移ります。 ハード リンクとは異なり、シンボリック リンクにはターゲット ファイルのデータは含まれません。 それは単に、ファイル システムのどこかにある別のエントリを指すだけです。 この違いにより、シンボリックリンクには、ディレクトリや、NFSを介してネットワーク接続されたリモートコンピュータ上のファイルへのリンクなど、ハードリンクにはない特質があります。 また、対象のファイルを削除すると、そのファイルへのシンボリックリンクは使用できなくなりますが、ハードリンクではファイルの内容が保持されます。 (https://kb.iu.edu/d/abbe)
それでは、上で作成したハードリンクと比較するために、ソフトリンクを作成してみましょう
それでは、ターミナルを開いてみましょう。 ファインダーか検索でターミナルと入力すると、ポップアップで表示されるはずですので、それをクリックして開きます。 touch example1
と入力し、エンターキーを押します。 ファイルを作成することができます。
ここで、シェルに ln -s example1 softlink1
と入力すると、ファイル間のソフトリンクが作成されます。 下の例を見てください。