本ブログで良く使う/usr/share/dict/wordsが存在する/usrディレクトリは、
FHS(http://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04.html)によると、
いつも良く使うコマンドの格納場所を見ても分かるように、 リードオンリーな共有ファイルが格納されています。
~$ which perl ruby python head rev wc pr /usr/bin/perl /usr/bin/ruby /usr/bin/python /usr/bin/head /usr/bin/rev /usr/bin/wc /usr/bin/pr ~$
/usrにはこのようなディレクトリが並んでいます。
~$ tree -L 1 /usr /usr ├── bin ├── games ├── include ├── lib ├── local ├── sbin ├── share └── src
上記の内、bin lib local sbin shareに関しては、必須ディレクトリとなります。games include srcは、オプションです。中でもlocalディレクトリは、OS、ディストリビューション管理のファイルではなく、linuxユーザ(管理者)のファイルの格納場所となります。あれ、ユーザが使えるディレクトリって$HOME、つまり、/home/ユーザ名 ではないのでしょうか?
もちろん、$HOMEは使いますが、/usr/localは、複数ユーザが参照できるディレクトリなのです。よって、/usrは、すべてリードオンリーでなければならないのですが、/usr/localへファイルを格納する時は、当然ライトすることになります。
「全国で村がつく住所の数をgrepとwcで求める」で取得した郵便番号データは、共有する場合、/usr配下のどこに格納するべきでしょうか。
/usr/local/shareとかはいかがでしょう。絶対にここに置かないといけないということはないのですが、FHSを考慮することにより、ファイルの紛失が少なくなります。ファイルがどこにあるか把握しているだけで、コマンドラインの可能性がぐんと拡がります。
~$ sudo mkdir -p /usr/local/share/zipcodes ~$ mv KEN_ALL.CSV !$/
「SVGで星空を描く」で使用したNASAの星データは、ここに格納しました。
~$ sudo mkdir -p /usr/local/share/nasa/ ~$ mv heasarc_hipparcos.tdat !$
ファイル名が思い出しにくければ、シンボリックリンクでわかりやすい名前にするのもよいでしょう。
~$ cd /usr/local/share/nasa takk@deb:/usr/local/share/nasa$ sudo ln -s heasarc_hipparcos.tdat stars takk@deb:/usr/local/share/nasa$ ls -l 合計 83240 -rw-rw-r-- 1 root root 85234422 3月 19 2015 heasarc_hipparcos.tdat lrwxrwxrwx 1 root root 22 7月 8 22:26 stars -> heasarc_hipparcos.tdat takk@deb:/usr/local/share/nasa$
コメント