2008年12月15日

[vine-users:079000] Re: SCIMで日本語入力ができなくなりました

加藤(大阪)です。

Sun, 14 Dec 2008 19:50:15 +0900 付
Lawrenceさんのメールより:

> mvコマンドはファイル名を変えるコマ
> ンドですよね?ファイル名を変えて、再起動す
> ると何故、デフォルトの状態に戻るのですか?


まず先に、二つ目の "?" について。

ホームディレクトリに「ユーザー用個人設定ファイル」を置くタイプのプログラ
ムでは、多くの場合、(再)起動時にまず、
該当プログラム用の個人設定ファイルがあるかどうか?
がチェックされます。

個人設定ファイルがない場合は、
・「デフォルトの設定ファイル」を、プログラムのデータ保存領域
(/usr/share/ソフト名、など)や、設定保存領域 (/etc/ソフト名、など)
から、ホームディレクトリへコピーする。
・プログラムコード内に含まれるデフォルトの設定データを、設定ファ
イルとしてホームディレクトリへ書き出す。
などの方法で、ホームディレクトリにデフォルトの個人用設定ファイルが作ら
れます。いわば設定の ”初期化作業" が行われるわけです。

個人設定ファイルがある場合は、この作業はスキップされます。

簡略化して言えば、"プログラム起動時" に、ホームディレクトリ内の「"想定さ
れている名前" の設定ファイルの "有 / 無"」によって、上記のような「"設定
初期化作業" を "スキップするか / 実行するか"」 の "判定" をしているので
す。

又、見方を変えれば、firefox 等でアドオンを追加したような場合に、再起動が
要求される事があるのは、アドオンの機能を即座に反映させる為、"必要なら新
しい設定ファイルを作って"、設定全体を一から読み直す必要がある、からなの
です。

このような仕組みがあるため、「設定ファイルの名前を変更」すると、「"想定
されている名前" の設定ファイル」が無くなるので、「デフォルト = 初期設
定」の状態に戻るわけです。

次に、一つ目の "?"、mv コマンドは、正確には「ファイル名を変えるコマン
ド」ではなく、「ファイルを移動するコマンド」です (mv は move を意味しま
す)。
たとえば、
$ mv /パス1/ファイル1 /パス2/ファイル2
とした場合、
1.「/パス1/ファイル1」を「/パス2/ファイル2」にコピー。
2.「/パス1/ファイル1」を削除。
というような操作が行われます。
カレントディレクトリ内 、又は同一パス内でこの作業が行われた時は、"結
果" として「ファイル名が変更された」のと同じ事になります。(*内部的には、
パスが同じ場合は、単純に名前のみを変更しているのだと思いますが、基本は
"移動" です)

なお純粋な?ファイル名変更には、rename というコマンドも有ります。
こちらはこちらで、ちょっとクセもありますが、複数ファイルの一括名前変更な
どには便利です。

--
加藤 雅 <mkato@xxxxx>
http://add10.hp.infoseek.co.jp/rox/
http://www2.odn.ne.jp/add10/fluxbox/


投稿者 xml-rpc : 2008年12月15日 19:06
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/80142
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。