『SPACE BATTLESHIP ヤマト』(2010)
宇宙戦艦ヤマト世代としては、別物として見た方がよい映画ですね。アニメ版を知ってるなら、比較しながら楽しむってこともできるかもしれません。実写版を見たら懐かしくなって、アニメ版を見たくなったので今度レンタルに走ります。アニメ版での好きなシーンは、荒廃した褐色の地球が、何光年も離れたところからみると、まだ美しい青い地球ってところ。映像だけはタイムスリップできるって神秘です。私の宇宙への興味ってこういうところから生まれたかもしれません。
『SPACE BATTLESHIP ヤマト』のガミラス星人は、個と全体が同一で統一された意思で動くロボットみたいな星人でした。まるで、linuxのハードリンクだなあと思いましたので、今回はlnコマンドです。
上達の近道は土台づくりってことで、「左から右へ処理する」や「コピーいろいろ」ではcpコマンドの使い方を見直していましたが、今回も基礎ですね。lnコマンドは、
ln -s ファイル リンク名
で使うことが多いですが、今回は -sオプションを使うシンボリックリンクではなく、ハードリンクです。
~$ echo AAAAA>a ~$ cat a AAAAA ~$ ls -l 合計 4 -rw-rw-r-- 1 takk takk 6 7月 30 22:35 a ~$
まずはハードリンクです。
~$ date +%T 22:37:43 ~$ ln a b ~$ ls -l 合計 8 -rw-rw-r-- 2 takk takk 6 7月 30 22:35 a -rw-rw-r-- 2 takk takk 6 7月 30 22:35 b ~$ head * ==> a <== AAAAA ==> b <== AAAAA ~$ stat * File: `a' Size: 6 Blocks: 8 IO Block: 4096 通常ファイル Device: 801h/2049d Inode: 7745746 Links: 2 Access: (0664/-rw-rw-r--) Uid: ( 1001/ takk) Gid: ( 1001/ takk) Access: 2016-07-30 22:35:51.948811685 +0900 Modify: 2016-07-30 22:35:48.128811753 +0900 Change: 2016-07-30 22:39:56.184807346 +0900 Birth: - File: `b' Size: 6 Blocks: 8 IO Block: 4096 通常ファイル Device: 801h/2049d Inode: 7745746 Links: 2 Access: (0664/-rw-rw-r--) Uid: ( 1001/ takk) Gid: ( 1001/ takk) Access: 2016-07-30 22:35:51.948811685 +0900 Modify: 2016-07-30 22:35:48.128811753 +0900 Change: 2016-07-30 22:39:56.184807346 +0900 Birth: - ~$
aもbも同じ内容になりました。
bの内容を書き換えてみます。
~$ date +%T 22:41:52 ~$ vi b ~$ date +%T 22:42:13 ~$ echo BBBBB>>b ~$ head * ==> a <== AAAAA BBBBB ==> b <== AAAAA BBBBB ~$ stat * File: `a' Size: 12 Blocks: 8 IO Block: 4096 通常ファイル Device: 801h/2049d Inode: 7745746 Links: 2 Access: (0664/-rw-rw-r--) Uid: ( 1001/ takk) Gid: ( 1001/ takk) Access: 2016-07-30 22:42:17.824804829 +0900 Modify: 2016-07-30 22:42:15.908804863 +0900 Change: 2016-07-30 22:42:15.908804863 +0900 Birth: - File: `b' Size: 12 Blocks: 8 IO Block: 4096 通常ファイル Device: 801h/2049d Inode: 7745746 Links: 2 Access: (0664/-rw-rw-r--) Uid: ( 1001/ takk) Gid: ( 1001/ takk) Access: 2016-07-30 22:42:17.824804829 +0900 Modify: 2016-07-30 22:42:15.908804863 +0900 Change: 2016-07-30 22:42:15.908804863 +0900 Birth: - ~$
ファイルbの内容を変えると、aの内容も変わりました。タイムスタンプも両方更新されています。
ファイルbを削除してみます。
~$ rm b ~$ head * AAAAA BBBBB ~$ stat * File: `a' Size: 12 Blocks: 8 IO Block: 4096 通常ファイル Device: 801h/2049d Inode: 7745746 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1001/ takk) Gid: ( 1001/ takk) Access: 2016-07-30 22:44:04.304802937 +0900 Modify: 2016-07-30 22:42:15.908804863 +0900 Change: 2016-07-30 22:43:59.740803018 +0900 Birth: - ~$
ファイルbを消してもファイルaは残りました。
Linksが1に戻りました。
リンクファイルを増やしてみます。
~$ for i in b c d e;do ln a $i;done ~$ ls -l 合計 20 -rw-rw-r-- 5 takk takk 12 7月 30 22:42 a -rw-rw-r-- 5 takk takk 12 7月 30 22:42 b -rw-rw-r-- 5 takk takk 12 7月 30 22:42 c -rw-rw-r-- 5 takk takk 12 7月 30 22:42 d -rw-rw-r-- 5 takk takk 12 7月 30 22:42 e ~$ head * | pr -t5 ==> a <== ==> b <== ==> c <== ==> d <== ==> e <== AAAAA AAAAA AAAAA AAAAA AAAAA BBBBB BBBBB BBBBB BBBBB BBBBB ~$ stat -t * a 12 8 81b4 1001 1001 801 7745746 5 0 0 1469886487 1469886135 1469886476 0 4096 b 12 8 81b4 1001 1001 801 7745746 5 0 0 1469886487 1469886135 1469886476 0 4096 c 12 8 81b4 1001 1001 801 7745746 5 0 0 1469886487 1469886135 1469886476 0 4096 d 12 8 81b4 1001 1001 801 7745746 5 0 0 1469886487 1469886135 1469886476 0 4096 e 12 8 81b4 1001 1001 801 7745746 5 0 0 1469886487 1469886135 1469886476 0 4096 ~$
9番目のフィールドがLinksです。全ファイル数の5となっています。
もともとのファイルaを削除するとどうなるでしょう。
~$ rm a ~$ stat -t * b 12 8 81b4 1001 1001 801 7745746 4 0 0 1469886487 1469886135 1469886668 0 4096 c 12 8 81b4 1001 1001 801 7745746 4 0 0 1469886487 1469886135 1469886668 0 4096 d 12 8 81b4 1001 1001 801 7745746 4 0 0 1469886487 1469886135 1469886668 0 4096 e 12 8 81b4 1001 1001 801 7745746 4 0 0 1469886487 1469886135 1469886668 0 4096 ~$ head * | pr -t4 ==> b <== ==> c <== ==> d <== ==> e <== AAAAA AAAAA AAAAA AAAAA BBBBB BBBBB BBBBB BBBBB ~$
aが削除されても、他ファイルはそのままです。
もちろん、残ったファイルで内容は共有されます。
~$ echo CCCCC>>e ~$ head * | pr -t4 ==> b <== ==> c <== ==> d <== ==> e <== AAAAA AAAAA AAAAA AAAAA BBBBB BBBBB BBBBB BBBBB CCCCC CCCCC CCCCC CCCCC ~$
コメント