Linux の 101 試験対策: Linux の 101 試験対策: ハード・リンクとシンボリック・リンクの作成および変更

同じファイルに複数の名前を使用する

Linux® システム上でファイルのハード・リンクとシンボリック・リンクを作成し、管理する方法を学んでください。この記事の内容は、Linux のシステム管理者として認定するための LPI 101 試験に備えるためにも、ハード・リンクとソフト・リンク (別名、シンボリック・リンク) の違いを理解し、ファイルをコピーする代わりに、ファイルへのリンクを張る場合の最適な方法を検討する上でも役立ちます。

Ian Shields, Senior Programmer, IBM

Ian ShieldsIan Shields は、developerWorks Linux ゾーンの様々な Linux プロジェクトに関わっています。彼はノースキャロライナ州 Research Triangle Park にある IBM のシニア・プログラマーです。1973年にオーストラリアのキャンベラでシステム・エンジニアとして IBM に入社して以来、カナダのモントリオールやノースキャロライナ州 Research Triangle Park で、コミュニケーション・システムやパーベイシブ・コンピューティングに携わってきました。彼はいくつかの特許を保持しています。Australian National University にて純粋数学および哲学で学位を取得し、また North Carolina State University にてコンピューター・サイエンスで修士号と博士号を取得しています。Ian について詳しく知るには、My developerWorks で彼のプロフィールを見てください。


developerWorks 貢献著者レベル

2010年 6月 01日

この連載について

この連載は Linux システム管理タスクの学習に役立つだけでなく、LPIC-1 (Linux Professional Institute Certification レベル 1) 試験に備えるための教材にもなります。

連載の各記事についての説明とリンクについては、連載のロードマップを参照してください。現在進行中のこのロードマップは、LPIC-1 試験の最新の目標 (2009年4月) を反映しています。完成した記事はその都度ロードマップに追加されていきますが、当面は developerWorks の LPI 認定試験対策チュートリアルで同様の教材の以前のバージョンを調べてください。これらのバージョンは、2009年4月より前の LPIC-1 目標に対応しています。

概要

この記事では、ハード・リンクとシンボリック・リンクを作成し、管理する方法について学びます。この記事で説明する内容は以下のとおりです。

  • ハード・リンクまたはソフト・リンクを作成する方法
  • リンクを識別し、リンクのタイプを把握する方法
  • ファイルをコピーする場合と、ファイルへのリンクを張る場合の違い
  • リンクを使用してシステム管理タスクを行う方法

この記事は、Linux Professional Institute の Junior Level Administration (LPIC-1) 101 試験の主題 104 の 104.6 の試験対策に役立ちます。この目標の重要度は 2 です。

前提条件

この連載の記事を最大限に活用するには、Linux の基礎知識と、記事に記載されたコマンドを演習できる実際の Linux システムが必要です。プログラムのバージョンによって出力のフォーマットに違いが出てくる場合もあるため、コマンドの実行結果は必ずしもここに記載するリストや図とまったく同じであるとは限りません。特に、記載する出力のほとんどは、お使いのシステムにインストールされているパッケージによって大きく左右されます。出力がかなり違っているとしても、重要な共通点は認識できるはずです。


リンクの概要

Ian とつながるには

Ian は developerWorks で人気の高いお馴染みの著者の 1 人です。Ian が書いたすべての developerWorks 記事を閲覧してみてください。また、My developerWorks では、Ian のプロフィールを調べることや、彼やその他の著者、そして他の読者とつながることができます。

ストレージ・デバイスでは、ファイルまたはディレクトリーはブロックの集合の中に含まれます。ファイルに関する情報が格納されるのは、i ノードです。i ノードには、ファイルの所有者、ファイルの最終アクセス時刻、ファイルのサイズ、ファイルがディレクトリーであるかどうか、ファイルの読み取りまたは書き込みが許可されているユーザーなどの情報が記録されます。i ノード番号はファイル・シリアル番号としても知られており、この番号は、個々のファイルシステム内で固有の番号です。各ディレクトリー・エントリーには、ファイルまたはディレクトリーの名前と、そのファイルまたはディレクトリーに関する情報が格納されている i ノードへのポインターが組み込まれます。

リンクは、同じ 1 つのファイルまたはディレクトリーに複数の名前を使えるようにするために追加するディレクトリー・エントリーに過ぎません。ハード・リンクとは、i ノードを指すディレクトリー・エントリーのことです。一方、ソフト・リンク (あるいはシンボリック・リンク) とは、別のディレクトリー・エントリーの名前を指定する i ノードを指すディレクトリー・エントリーです。この別の名前を保存するための厳密なメカニズムは、ファイルシステムと名前の長さの両方によって左右されます。シンボリック・リンクは、symlink とも呼ばれます。

ハード・リンクを作成できるのはファイルに対してのみであり、ディレクトリーに対してハード・リンクを作成することはできません。ただし例外があり、サブディレクトリーの数を保持するためのハード・リンク「.」および「..」(ディレクトリー自体およびその親ディレクトリー) に対応する特殊なディレクトリー・エントリーをディレクトリー内に作成することはできます。ハード・リンクが指すのは i ノードであり、i ノードがその一意性を持つのは特定のファイルシステム内に限られるため、複数のファイルシステムにまたがってハード・リンクを作成することはできません。複数のハード・リンクがあるファイルの場合、そのファイルの i ノードを指す最後のリンクが削除されて、リンク・カウントが 0 になるまで、そのファイルは削除されません。

ソフト・リンク (または symlink) は、別のファイルまたはディレクトリーを指しますが、その際 i ノードを使わずに名前で指定します。そのため、ソフト・リンクはファイルシステムの境界をまたぐことができます。ソフト・リンクを削除しても、ターゲットのファイルまたはディレクトリーは削除されません。また、ターゲット・ファイルまたはディレクトリーを削除しても、ソフト・リンクが自動的に削除されることにはなりません。


リンクを作成する

まずは、ハード・リンクおよびソフト・リンクを作成する方法から説明します。そして、ここで作成したリンクを例に、リンクを識別する方法、リンクを使用する方法を解説します。

ハード・リンク

既存のファイルへのハード・リンクを作成して追加するには、ln コマンドを使用します (ただし、システムが「.」および「..」をハード・リンクとして設定しているとしても、ディレクトリーへのハード・リンクを作成することはできません)。

リスト 1 に、2 つのファイルと 1 つのサブディレクトリーが含まれるディレクトリーを作成し、file1 へのハード・リンクを同じディレクトリー内に 1 つ、サブディレクトリー内に 1 つ設定する方法を示します。file1 と file3 にはそれぞれ異なる単語を追加し、サブディレクトリー内のリンクの内容を表示して、確かに同じデータを指していることを証明しています。

リスト 1. ハード・リンクを作成する
ian@attic4:~$ mkdir -p lpi104-6/subdir
ian@attic4:~$ touch lpi104-6/file1
ian@attic4:~$ touch lpi104-6/file2
ian@attic4:~$ ln lpi104-6/file1 lpi104-6/file3
ian@attic4:~$ ln lpi104-6/file1 lpi104-6/subdir/file3sub
ian@attic4:~$ echo "something" > lpi104-6/file1
ian@attic4:~$ echo "else" >> lpi104-6/file3
ian@attic4:~$ cat lpi104-6/subdir/file3sub
something
else

別のファイルシステムにまたがるハード・リンクや、ディレクトリーのハード・リンクを作成しようとすると、エラーになります。リスト 2 に示すように、home ディレクトリーと research ディレクトリーは別々のファイルシステム上にあるため、これらのディレクトリーをまたがるハード・リンクを作成しようすると失敗に終わります。同様に lpi104-6 ディレクトリーへのハード・リンクを作成しようすると失敗に終わります。

リスト 2. ハード・リンクの作成の失敗
ian@attic4:~$ df . research
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda7             71205436   9355052  58233352  14% /
/dev/sdb3            137856204  27688208 103165264  22% /home/ian/ian-research
ian@attic4:~$ ln lpi104-6/file1 research/lpi104-6/file3
ln: creating hard link `research/lpi104-6/file3' => `lpi104-6/file1': No such file or dir
ectory
ian@attic4:~$ ln lpi104-6 lpidir104-6
ln: `lpi104-6': hard link not allowed for directory

ソフト・リンク

ソフト・リンクを作成するには、ln コマンドに -s オプションを指定します。ソフト・リンクはファイル名またはディレクトリー名を使用しますが、これは相対名であっても、絶対名であっても構いません。通常、相対名を使用するのは、リンクを作成しているディレクトリーをカレント作業ディレクトリーにする場合です。そうでない場合、作成するリンクはファイルシステム内の別のポイントを基準にすることになります。リスト 3 に、さきほど作成した file1 へのソフト・リンクを作成する 2 つの方法に加え、リスト 2 で失敗した 2 つのハード・リンクに代わるソフト・リンクを作成する方法を示します。

リスト 3. ソフト・リンクを作成する
ian@attic4:~$ # Create symlink using absolute paths
ian@attic4:~$ ln -s ~/lpi104-6/file1 ~/lpi104-6/file4
ian@attic4:~$ # Create symlink using relative paths
ian@attic4:~$ cd lpi104-6/
ian@attic4:~/lpi104-6$ ln -s file1 file5
ian@attic4:~/lpi104-6$ cd ..
ian@attic4:~$ # Create symlink across file systems
ian@attic4:~$ mkdir ~ian/research/lpi104-6
ian@attic4:~$ ln -s ~/lpi104-6/file1 ~ian/research/lpi104-6/file4
ian@attic4:~$ # Create symlink for directory
ian@attic4:~$ ln -s lpi104-6 lpidir104-6

前と同じく、リンクのどれを使っても、あるいはターゲット・ファイル名を使っても、ファイルまたはディレクトリーを参照することができます。リスト 4 にいくつかの例を記載します。

リスト 4. ソフト・リンクを使用する
ian@attic4:~$ echo "another line" >> ~ian/research/lpi104-6/file
ian@attic4:~$ # cat a symlink
ian@attic4:~$ cat lpi104-6/file5
something
else
another line
ian@attic4:~$ # cat a hard link
ian@attic4:~$ cat lpi104-6/file1
something
else
another line
ian@attic4:~$ # display directory contents using symlink
ian@attic4:~$ ls lpidir104-6
file1  file2  file3  file4  file5  subdir

さまざまなリンクを作成する一環として、リンクを作成したいディレクトリーがカレント作業ディレクトリーではないときに、相対パスを使用したリンクを作成してみます。このリンクの内容については、次のセクションで説明します。

リスト 5. 無効なソフト・リンクを作成する
ian@attic4:~$ ln -s lpi104-6/file1 lpi104-6/file6

リンクを識別する

前のセクションではリンクを作成する方法を説明しましたが、作成したリンクを見分ける方法については説明していません。これから、その方法を説明します。

情報を見つけ出す

最近の多くのシステムでは、ls コマンドに ls --color=auto というエイリアスが設定されており、ファイルシステムのさまざまなオブジェクトがタイプによって色分けして出力されます。タイプごとの色は設定することができます。このオプションを使用すると、例えばハード・リンクは濃い青の背景色で表示され、symlink はシアンのテキストで表示されます (図 1 を参照)。

図 1. ls の --colors オプションを使用してリンクを識別する
ls の --colors オプションを使用してリンクを識別する

このような色分けは、色を見分けられるユーザーにとっては便利かもしれませんが、そうでなければ役に立ちません。もちろん、シェル・スクリプトやプログラムには無意味です。色を使わないとしたら、例えば ls –l によって長々としたリストで提供される情報などのように、より多くの情報が必要になります。リスト 6 では、明示的に色の出力を無効にしていますが、/bin/ls を明示的に呼び出すという方法も使えます。

リスト 6. リンクを識別する
ian@attic4:~$ ls --color=none -lR lpi104-6
lpi104-6:
total 12
-rw-r--r-- 3 ian ian   28 2010-05-27 17:17 file1
-rw-r--r-- 1 ian ian    0 2010-05-26 14:11 file2
-rw-r--r-- 3 ian ian   28 2010-05-27 17:17 file3
lrwxrwxrwx 1 ian ian   24 2010-05-27 17:15 file4 -> /home/ian/lpi104-6/file1
lrwxrwxrwx 1 ian ian    5 2010-05-27 17:15 file5 -> file1
lrwxrwxrwx 1 ian ian   14 2010-05-27 17:37 file6 -> lpi104-6/file1
drwxr-xr-x 2 ian ian 4096 2010-05-26 14:11 subdir

lpi104-6/subdir:
total 4
-rw-r--r-- 3 ian ian 28 2010-05-27 17:17 file3sub
ian@attic4:~$ /bin/ls -l ~ian/research/lpi104-6/file4
lrwxrwxrwx 1 ian ian 24 2010-05-25 11:51 /home/ian/research/lpi104-6/file4 -> /home/ian/
lpi104-6/file1
ian@attic4:~$ /bin/ls -l lpidir104-6
lrwxrwxrwx 1 ian ian 8 2010-05-27 17:16 lpidir104-6 -> lpi104-6

上記の出力で 2 列目に表示されているのは、このファイルへのハード・リンクの数を示すリンク・カウントです。したがって、file1、file3、file3sub にはいずれも、それぞれが表すオブジェクトを指すハード・リンクが複数あることがわかりますが、これだけの情報では、そのすべてが同じオブジェクトを表しているかどうかはわかりません。リンク・カウントが 1 よりも大きいファイルを削除すると、i ノードに格納されたリンク・カウントは 1 つ減ります。けれどもそのファイルは、カウントが 0 にならない限り削除されません。そのため、このファイルに張られたその他すべてのハード・リンクは、1 つ数が減ったリンク・カウントを示すことになります。

出力行の最初の列を見ると、先頭文字はシンボリック・リンクを表す「l」(小文字の L) になっていることがわかります。また、ソフト・リンクのターゲットは、file4 -> /home/ian/lpi104-6/file1 というように、-> 文字の後に表示されることも示されています。リンクを識別するもう 1 つの手掛かりとなるのは、サイズが、リンクのターゲットの名前に含まれる文字数を表しているという点です。ディレクトリー・リストのリンク・カウントは、シンボリック・リンクの場合には更新されないことに注意してください。シンボリック・リンクを削除してもターゲット・ファイルには影響しないため、symlink によってファイルを削除できないということはありませんが、ターゲット・ファイルが移動または削除されると symlink が壊れます。そのため、多くのシステムではディレクトリー・リストで色を使用して、大抵は正常なリンクを薄い青、壊れたリンクを赤で示します。

ファイルおよびディレクトリー・エントリーの i ノード番号を表示するには、ls コマンドで -i オプションを使用します。リスト 7 に、このコマンドを lpi104-6 ディレクトリーを対象に実行した場合の出力を、要約バージョンと詳細バージョンの両方で記載します。

リスト 7. i ノード情報を表示する
ian@attic4:~$ ls -i lpi104-6
1680103 file1  1680103 file3  1680107 file5  1680101 subdir
1680104 file2  1680108 file4  1680110 file6
ian@attic4:~$ ls -il lpi104-6
total 12
1680103 -rw-r--r-- 3 ian ian   28 2010-05-27 17:17 file1
1680104 -rw-r--r-- 1 ian ian    0 2010-05-26 14:11 file2
1680103 -rw-r--r-- 3 ian ian   28 2010-05-27 17:17 file3
1680108 lrwxrwxrwx 1 ian ian   24 2010-05-27 17:15 file4 -> /home/ian/lpi104-6/file1
1680107 lrwxrwxrwx 1 ian ian    5 2010-05-27 17:15 file5 -> file1
1680110 lrwxrwxrwx 1 ian ian   14 2010-05-27 17:37 file6 -> lpi104-6/file1
1680101 drwxr-xr-x 2 ian ian 4096 2010-05-26 14:11 subdir

find コマンドを使ってシンボリック・リンクを検索することもできます。それには、リスト 8 のように -type l 検索式を使用します。

リスト 8. find を使用して symlink を見つける
ian@attic4:~$ find lpi104-6 research/lpi104-6 -type l
lpi104-6/file6
lpi104-6/file5
lpi104-6/file4
research/lpi104-6/file4

リンク切れの symlink

リスト 5 では無効なソフト・リンクを作成しましたが、これはリンク切れ symlink の一例です。ハード・リンクは常にファイルを表す i ノードを指すことから、常に有効なリンクとなりますが、symlink は以下に挙げるようなさまざまな理由から壊れることがあります。

  • 元のファイルまたはリンクのターゲットのいずれかが、リンクの作成時に存在していなかった場合 (これに該当するのが、リスト 5 です。)
  • リンクのターゲットが削除されたか、名前変更された場合
  • ターゲットのパスに含まれる要素が削除されたか、要素の名前が変更された場合

いずれの場合もエラーは発生しないため、symlink を作成するときには、発生する可能性のある事態を十分慎重に考えなければなりません。具体的には、絶対パスと相対パスのどちらを選択するかは、リンクの有効期間中、リンク先のオブジェクトに起こり得る事態によって決まります。

出力を色分けしている場合には、リンクの切れた symlink は、図 1 の file6 のように、背景色が黒の赤いテキストで示されます。出力が色分けされないとしたら、ls コマンドで -H オプションまたは -L オプションのいずれかを使用してリンクを逆参照し、ターゲットに関する情報を入手する必要があります。-H オプションはコマンドラインのリンクを逆参照し、-L オプションはコマンドラインのリンクと、表示に含まれるリンクの両方を逆参照します。リスト 9 に、この 2 つのオプションのそれぞれを使用した場合の出力を比較します。

リスト 9. ls -H および ls -L によるリンクの逆参照
ian@attic4:~$ /bin/ls -lH lpidir104-6
total 12
-rw-r--r-- 3 ian ian   28 2010-05-27 17:17 file1
-rw-r--r-- 1 ian ian    0 2010-05-26 14:11 file2
-rw-r--r-- 3 ian ian   28 2010-05-27 17:17 file3
lrwxrwxrwx 1 ian ian   24 2010-05-27 17:15 file4 -> /home/ian/lpi104-6/file1
lrwxrwxrwx 1 ian ian    5 2010-05-27 17:15 file5 -> file1
lrwxrwxrwx 1 ian ian   14 2010-05-27 17:37 file6 -> lpi104-6/file1
drwxr-xr-x 2 ian ian 4096 2010-05-26 14:11 subdir
ian@attic4:~$ /bin/ls -lL lpidir104-6
/bin/ls: cannot access lpidir104-6/file6: No such file or directory
total 20
-rw-r--r-- 3 ian ian   28 2010-05-27 17:17 file1
-rw-r--r-- 1 ian ian    0 2010-05-26 14:11 file2
-rw-r--r-- 3 ian ian   28 2010-05-27 17:17 file3
-rw-r--r-- 3 ian ian   28 2010-05-27 17:17 file4
-rw-r--r-- 3 ian ian   28 2010-05-27 17:17 file5
l????????? ? ?   ?      ?                ? file6
drwxr-xr-x 2 ian ian 4096 2010-05-26 14:11 subdir

エラー・メッセージによって、file6 が存在しないことを通知しているのと同時に、このファイルに対応する出力もすべて「?」文字になって、ファイルが見つからないことを示している点に注意してください。

このリンク切れのシンボリック・リンクに関する最後の注意点として、ファイルを読み取ろうとすると、ファイルが存在しないことから読み取り操作は失敗しますが、適切なアクセス権を持っている場合には、ターゲット・ファイルへの書き込み操作は成功するはずです (リスト 10 を参照)。ただし、ファイルへの書き込みを可能にするには、その前に lpi104-6/lpi104-6 を作成しなければなりません。

リスト 10. リンク切れ symlink に対して読み取りおよび書き込み操作を実行する
ian@attic4:~$ cat lpi104-6/file6
cat: lpi104-6/file6: No such file or directory
ian@attic4:~$ echo "Testing file6" > lpi104-6/file6
bash: lpi104-6/file6: No such file or directory
ian@attic4:~$ mkdir lpi104-6/lpi104-6
ian@attic4:~$ cat lpi104-6/file6
cat: lpi104-6/file6: No such file or directory
ian@attic4:~$ echo "Testing file6" > lpi104-6/file6
ian@attic4:~$ cat lpi104-6/file6
Testing file6
ian@attic4:~$ ls lpi104-6/lpi104-6
file1

誰が自分にリンクしているのか

特定の i ノードに対してどのファイルからハード・リンクが張られているかを調べるには、find コマンドと、ファイル名を指定した -samefile オプションまたは i ノード番号を指定した -inum オプションを使用することができます (リスト 11 を参照)。

リスト 11. 同じファイルに張られたハード・リンクを検索する
ian@attic4:~$ find lpi104-6 -samefile lpi104-6/file1
lpi104-6/subdir/file3sub
lpi104-6/file3
lpi104-6/file1
ian@attic4:~$ ls -i lpi104-6/file1
1680103 lpi104-6/file1
ian@attic4:~$ find lpi104-6 -inum 1680103
lpi104-6/subdir/file3sub
lpi104-6/file3
lpi104-6/file1

特定のファイルに対してどのファイルからシンボリック・リンクが張られているかを調べるには、find コマンドと、ファイル名を指定した -lname オプションを使用します (リスト 12 を参照)。リンクには相対パスと絶対パスのいずれかを使用できるので、名前の先頭にアスタリスクを付けて、そのファイル名が含まれるすべての一致結果を検索しなければならない場合も考えられます。

リスト 12. ファイルまたはディレクトリーへのシンボリック・リンクを検索する
ian@attic4:~$ find lpi104-6 research/lpi104-6 -lname "*file1"
lpi104-6/file6
lpi104-6/file5
lpi104-6/file4
research/lpi104-6/file4

コピーする場合とリンクを張る場合の違い

何を目的にしているかによって、リンクを使用する場合もあれば、ファイルのコピーを作成したほうが有効な場合もあります。その主な違いは、リンクでは 1 つのファイルに対して複数の名前を指定する一方、コピーではまったく同じデータの 2 つのセットをそれぞれに異なる名前で作成するという点です。バックアップや、実際に運用しているデータをリスクにさらすことなく新しいプログラムをテストすることが目的であれば、もちろんファイルをコピーすることになります。その一方、例えば使いやすい簡潔なパスを提供するために、ファイル (またはディレクトリー) のエイリアスが必要であるという場合にはリンクを使います。これ以外のリンクの使い道については、次のセクションで説明します。

前述したとおり、ファイルを更新すると、そのファイルへのすべてのリンクが更新されますが、ファイルをコピーする場合には、その限りではありません。また、シンボリック・リンクは壊れることがあっても、壊れた後の書き込み操作で新しいファイルが作成される可能性もあると説明しました。つまり、リンクは慎重に使用しなければならないということです。


リンクとシステム管理

Linux システム管理では、シンボリック・リンクを筆頭に、リンクが頻繁に使用されます。コマンドには大抵、ユーザーが現行のコマンドのバージョン番号を知らなくても済むようにエイリアスが設定されていますが、必要に応じて、それよりも長いコマンド名を使って他のバージョンにアクセスすることも可能です。リスト 13 に示す gcc コマンドはシンボリック・リンクです。私が使用しているシステムには、このコマンドに 3 つの名前があります。

リスト 13. コマンドに特定のバージョンに応じたエイリアスを設定する
ian@attic4:~$ which gcc
/usr/bin/gcc
ian@attic4:~$ ls -l /usr/bin/gcc
lrwxrwxrwx 1 root root 7 2009-12-28 23:17 /usr/bin/gcc -> gcc-4.4
ian@attic4:~$ find /usr/bin -lname "*gcc-4.4"
/usr/bin/x86_64-linux-gnu-gcc-4.4
/usr/bin/gcc
/usr/bin/x86_64-linux-gnu-gcc

リンクの他の使い方は、複数のコマンド名で同一のコード (例えばシステムの停止や再起動に使用する各種のコマンドなど) を使用している場合に関係します。場合によっては、新しいコマンド名 (例えば genisofs) を古いコマンド名の代わりとする一方、古い名前 (mkisofs) をその新しいコマンドへのリンクとして残しておくことがあります。そして、代替機能では広範にリンクを使用するので、複数の代替機能のなかから、例えば java コマンド用にどれを使うかを選択することができます。リスト 14 にいくつかの例を記載します。

リスト 14. コマンド・エイリアスの例
ian@attic4:~$ find /sbin -lname "initctl"
/sbin/restart
/sbin/start
/sbin/stop
/sbin/status
/sbin/reload
ian@attic4:~$ ls -l $(which mkisofs)
lrwxrwxrwx 1 root root 11 2009-12-28 23:17 /usr/bin/mkisofs -> genisoimage
ian@attic4:~$ ls -l $(which java)
lrwxrwxrwx 1 root root 22 2010-01-17 15:16 /usr/bin/java -> /etc/alternatives/java

ライブラリー名の管理にも、同じく symlink が多用されます。その目的は、プログラムが汎用名にリンクしながらも、現行バージョンを取得できるようにすること、あるいはシステム (32 ビットのプログラムを実行可能な 64 ビットのシステムなど) を管理することです。ライブラリーのリンクの例をリスト 15 に記載します。リンクによって、絶対パスを使用しているもの、相対パスを使用しているものがあることに注目してください。

リスト 15. ライブラリー・リンク
ian@attic4:~$ ls -l /usr/lib/libm.so
lrwxrwxrwx 1 root root 14 2010-05-27 11:23 /usr/lib/libm.so -> /lib/libm.so.6
ian@attic4:~$ find  /usr/lib/ -lname "*libstdc++*"
/usr/lib/gcc/x86_64-linux-gnu/4.4/libstdc++.so
/usr/lib/libstdc++.so.6
ian@attic4:~$ ls -l /usr/lib/gcc/x86_64-linux-gnu/4.4/libstdc++.so
lrwxrwxrwx 1 root root 23 2010-01-19 08:49 /usr/lib/gcc/x86_64-linux-gnu/4.4/libstdc++.s
o -> ../../../libstdc++.so.6

リンクについての詳細は、ln コマンドをはじめ、記事に記載したその他のコマンドの man ページを参照してください。

参考文献

学ぶために

製品や技術を入手するために

  • ご自分に最適な方法で IBM 製品を評価してください。評価の方法としては、製品の試用版をダウンロードすることも、オンラインで製品を試してみることも、クラウド環境で製品を使用することもできます。また、SOA Sandbox では、数時間でサービス指向アーキテクチャーの実装方法を効率的に学ぶことができます。

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=498229
ArticleTitle=Linux の 101 試験対策: Linux の 101 試験対策: ハード・リンクとシンボリック・リンクの作成および変更
publish-date=06012010