古い記事
ランダムジャンプ
新しい記事

ハードリンク

2002-06-24-4
この歳になるまでハードリンクってよくわからなかったので、調べて、
試してみました。
- <http://x68000.startshop.co.jp/~68user/unix/pickup?ln>
- <http://www.web-shinsengumi.com/dp/unix/old/014.txt>
- <http://www.linux.or.jp/JM/html/gnumaniak/man1/ln.1.html>

sakana% cat a1
This is a pen.
sakana% ln a1 a2
sakana% ls -li a1 a2
 229494 -rw-rw-r-- 2 yto yto 15 Jun 24 10:07 a1
 229494 -rw-rw-r-- 2 yto yto 15 Jun 24 10:07 a2
sakana% diff -s a1 a2
ファイル a1 と a2 は同一です

sakana% echo Hello >> a1
sakana% cat a1
This is a pen.
Hello
sakana% diff -s a1 a2
ファイル a1 と a2 は同一です

sakana% perl -i.bak -pe 's/Hello/Bye/' a1
sakana% cat a1
This is a pen.
Bye
sakana% ls -li a1* a2
 229491 -rw-rw-r-- 1 yto yto 19 Jun 24 10:09 a1
 229494 -rw-rw-r-- 2 yto yto 21 Jun 24 10:07 a1.bak
 229494 -rw-rw-r-- 2 yto yto 21 Jun 24 10:07 a2
sakana% diff -s a1 a2
2c2
< Bye
---
> Hello
sakana% diff -s a1.bak a2
ファイル a1.bak と a2 は同一です
- "perl -i.bak" では、a1 の i-node が変わってしまう。元の i-node
  は a1.bak へ。ゆえに、 a1 != a2 == a1.bak となる。

- 同様に、emacs, ng などのエディタで a1 を編集すると、a1 の i-node
  が変わってしまう。元の i-node は a1~ へ。
  ゆえに、 a1 != a2 == a1~ となる。

ハードリンクで同一内容を保つには、いろいろ面倒そうだなあ。