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

この記事は2006年10月04日に書かれたものです。

※引数の順番を忘れるのでメモ。

解説

ln -s [参照先(実体)] [参照元(シンボリックリンク)]
$ ln -s TC_001.jpg TC.jpg
$ ls -l
lrwxrwxrwx 1 admclubt webmastr 10 2006-10-04 15:32 TC.jpg -> TC_001.jpg
-rw-r--r-- 1 admclubt webmastr 28793 2006-09-26 12:46 TC1_001.jpg

削除を行いたい時は、rmなどで削除すればOK。参照先(実体)を消すことはなく、シンボリックリンクのみを削除する。また上記の例で言うと、「TC_001.jpg」を削除しても(当然といえば当然だが)自動的には消えず、エラーにならないので注意。

以下、manから抜粋。

ソフトリンク (もしくはシンボリックリンク、または symlink) というのはまったく違った種類のものである: 実体はパス名を含んだ小さくて特殊なファイルである。従って、ソフトリンクは異なるファイルシステム上 (たぶん他のマシンからマウントされた NFS) のファイルを指すことができる。また実際には存在しないファイルを指していても構わない。 (open(2) または stat(2) といったシステムコールにより) アクセスされた場合、シンボリックリンクへの参照は、オペレーティングシステムのカーネルによりそのパス名で指示 さ れ る ファイルへの参照として置き換えられる。 (しかし、 rm(1) コマンドや unlink(2) 関数ではリンク自身が削除され、リンクが指しているファイルは削除されない。

lstat(2) や readlink(2) 関数といったシンボリックリンクや、リンクが指しているファイル名のステータスを得る特殊なシステムコールがある。その他の色々なシステムコールでは、その操作の対象がシンボリックリンクそのものなのか、それが指しているファイルなのかといったことについて、オペレーティングシステム間で不明瞭さや違いがある。)

関連書籍

コメント

コメントを入力. Wiki文法が有効です:
Y T D X M