サイドバーの壁紙
博主头像
tin博主等级

子の曰わく、我れ三人行なえば必ず我が師を得(う)。其の善き者を択びてこれに従う。其の善からざる者にしてこれを改む。

  • 累積執筆 72 記事
  • 累計作成 32 タグ
  • 累計受入 2 コメント

目 次CONTENT

記事目次

Linuxのシンボリックリンクとハードリンク ln -sとln

tin
tin
2023-02-20 / 0 コメント / 2 いいね! / 160 読み / 777 文字

背景:

  • Python3.9をインストールしたが、python3.9 --versionコマンドが無効。
  • その理由は、プログラムは /usr/local/bin の下にインストールされているため、デフォルトの bin ディレクトリ /usr/bin の下には何もない。
  • 解決策は、リンクを作成すること。
  • しかし、Linuxにはシンボリックリンクとハードリンクがあるため、どう使い分けるか?
  • 以下は調査結果で、メモして置く。

1.Linuxのシンボリックリンクとハードリンク

1-1.各自の解釈

  • Linux では、リンクはファイル名を実際のファイルまたはディレクトリにマッピングするプロセスのこと。
    シンボリックリンクとハードリンクはリンクの2つの異なる方法。

  • シンボリックリンクは、別のファイルへのポインタを含む特殊なタイプのファイルのこと。
    ファイル システム内のシンボリックリンクはそれが指すファイルと同じではなく、パス名に過ぎない。
    ln -s コマンドを使用してシンボリックリンクを作成。
    ln -s /path/to/target /usr/bin/link
    このコマンドは、/usr/bin/の下に link という名前のシンボリックリンクを作成。
    このリンクの指す場所は/path/to/target
    デモ
    image-1677065470535

  • ハード リンクは、ファイル名を物理的な保存場所にマップするリンク。
    ハード リンク ファイルとソース ファイルは、同じ inode 番号とデバイス番号を持ち、同じデータ ブロックを指す。
    ln コマンドを使用してハード リンクを作成。
    ln /path/to/target /usr/bin/link
    このコマンドは、/usr/bin/の下に link という名前のハード リンクを作成。
    このリンクの指す場所は/path/to/target
    デモ
    image-1677065729175

1-2.同じの部分

  • そのため、リンクという機能につき、両方は同じ。

1-3.次は両方の相違点

  • シンボリックリンクは異なるファイル システムにまたがることができるが、ハード リンクは同じファイル システム内でしか作成できない。
    ソース ファイルが削除されても、ハード リンクは引き続きソース ファイルのコンテンツにアクセスできるが、シンボリックリンクは無効になる。
    ハード リンク リンクとソース ファイルが同じ inode 番号を共有するため。
2
  • 2

コメント欄