0Pricing
DevOps Bootcamp · レッスン

リンクの作成:ハードリンクとシンボリックリンク

1つのファイルを複数の場所から参照します。ハードリンクとシンボリックリンクの違い、lnでの作成方法、それぞれの使いどころを学びます。

「リンクの作成:ハードリンクとシンボリックリンク」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

リンクとは

リンクを使うと、複数の名前から同じファイルデータを参照できます。Linux にはハードリンクとシンボリックリンク(ソフトリンク)の2種類があります。

inode:実体としてのファイル

ディスク上では、ファイルはデータとメタデータを保持するinodeです。ファイル名は、inode を指すディレクトリエントリにすぎません。これがリンクを理解する鍵です。

ハードリンクを作成する

ハードリンクは、同じ inode を指す別のディレクトリエントリです。オプションを付けずに ln を使います。

ln original.txt copy.txt
# both names share the same data

ハードリンクの動作

どちらの名前も1つの inode を指しているため、どちらから編集しても同じデータが変更されます。ファイルは最後のリンクが削除されたときにのみ削除されます。

rm original.txt   # data still reachable via copy.txt

ハードリンクの制限

ハードリンクはファイルシステムをまたいで作成できず、通常はディレクトリにもリンクできません。また、別のディスクやパーティション上のファイルを指すこともできません。

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

シンボリックリンクは、別のファイルへのパスを保存する小さなファイルです。ln -s で作成します。

ln -s /var/www/site current
# current -> /var/www/site

シンボリックリンクの動作

シンボリックリンクが指すのは inode ではなく名前です。対象が削除または移動されると、シンボリックリンクは壊れた(ダングリング)リンクになります。

ls -l current
current -> /var/www/site

ファイルシステムをまたぐシンボリックリンク

ハードリンクとは異なり、シンボリックリンクはファイルシステムをまたぐことができ、ディレクトリも指せます。そのため、リリース用フォルダーの切り替えなどに使われます。

ls でリンクを見分ける

ls -l を使うと、シンボリックリンクは矢印とファイル種別 l で表示されます。ハードリンクでは、リンク数の列に inode を共有する名前の数が表示されます。

ls -li
12345 -rw-r--r-- 2 user ...   # count 2 = hard linked

リンクを削除する

シンボリックリンクに rm を使うと、対象ではなくリンクが削除されます。注意してください。ディレクトリへのシンボリックリンクに末尾のスラッシュを付けると、予期しない動作になることがあります。

rm current   # removes only the symlink

使い分け

ショートカット、ファイルシステムをまたぐ参照、ディレクトリ(最も一般的)にはシンボリックリンクを使います。同じファイルシステム上で、同一データに対して同等の複数の名前が必要な場合はハードリンクを使います。

クイックチェック

理解度を確認しましょう。

まとめ

リンクについて学びました。ハードリンクは同じ inode に名前を追加します(同じファイルシステム上でのみ、ディレクトリは不可。最後のリンクがなくなるまでデータは残ります)。一方、シンボリックリンク(ln -s)はパスを保存し、ファイルシステムをまたいだりディレクトリを指したりできますが、リンク切れになることがあります。

よくある質問

「リンクの作成:ハードリンクとシンボリックリンク」レッスンは無料ですか?

はい。「リンクの作成:ハードリンクとシンボリックリンク」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「リンクの作成:ハードリンクとシンボリックリンク」で何を学びますか?

1つのファイルを複数の場所から参照します。ハードリンクとシンボリックリンクの違い、lnでの作成方法、それぞれの使いどころを学びます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「リンクの作成:ハードリンクとシンボリックリンク」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ファイル内容の表示(cat、less、head、tail)
  2. ファイル権限の理解(chmod、chown)
  3. ファイルの検索(find、grep)
  4. リンクの作成:ハードリンクとシンボリックリンク
← DevOps Bootcampに戻る