加藤(大阪)です。 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@xxxxxxxxxxxxx> http://add10.hp.infoseek.co.jp/rox/ http://www2.odn.ne.jp/add10/fluxbox/