22.ファイル名やディレクトリ名を変更する。mvコマンド
ナックス「むかし、私がまだ夢見る子供だったころ──」
デビー君「な、何を突然語りだしてるんだ……」
ナックス「私はアニメや漫画が大好きでした。色々なキャラクターの格好いい名前を見て『どうしてお父さんとお母さんは僕に何の変哲もない普通の名前をつけたんだろう?』と思いました」
ナックス「特に私は『ドラゴン』という名前に憧れました。竜という意味を持つドラゴン。きっとレベルは93くらいで攻撃力は最強クラス。魔力もそこそこ」
ナックス「ドラゴンは両親を先の大戦で失し、孤児として育った。同じ孤児院のエリナとは──」
デビー君「そこまで詳しく設定は話さなくていいと思うから、結論を早く……」
ナックス「でも、大学生になってバイトを始めたころ、ドラゴンという名前じゃなくて本当によかったと思いました」
ナックス「なぜなら、もし私がドラゴンという名前だったら……セブンイレブンのレジ打ちアルバイター『ドラゴン』という、なんとも締まらないペンギンになっていたから……」
デビー君「…………」
ナックス「さあ!話が盛り上がって参りました!今回はファイル名やディレクトリ名の名前の変更方法です!」
ナックス「実はディレクトリ名やファイル名の変更も、前回教えたmvコマンドで出来ます」
デビー君「え?どうやって?普通にやったら移動しちゃわない?」
ナックス「いいえ。同じディレクトリ内で移動させることで、ファイルの名前、およびディレクトリの名前を変えることが出来ます!早速CUI環境を立ち上げましょう」
デビー君「はーい。」
ナックス「前々回の20.新しくディレクトリを作る。mkdirコマンドでprivateディレクトリを作りましたね?lsコマンドで確認してみましょう」
$ ls private 他にもファイルとかディレクトリとか…
デビー君「あります」
ナックス「とりあえずこのprivateディレクトリの名前でも変更してみますか」
デビー君「え!このディレクトリの中にはナックスがくれた画像ファイルがあるのに大丈夫なの?」
ナックス「どんなファイルやどんなディレクトリが既に中に入っていようが、それとは関係なくディレクトリ名は変更できます。今回はdoragonと言う名前のディレクトリ名に変えましょう」
デビー君「なんだかいきなり訳の分からない名前のディレクトリ名になっちゃうなぁ……」
ナックス「ディレクトリ名を変えるには次のようにします」
$ mv ./名前を変えたいディレクトリのディレクトリ名 ./好きな名前のディレクトリ名
デビー君「あれ?前にナックスが『使うタイミングが分からない』とかぼやいていた./(ドット、スラッシュ)を使うの?」
ナックス「いや、これは同じディレクトリの中でmvコマンドを使っていますよ、と分かりやすくしたかっただけです。正確には./を使わなくてもできます。つまり、以下のようにしても構いません」
$ mv 名前を変えたいディレクトリのディレクトリ名 好きな名前のディレクトリ名
ナックス「というわけで、今回の例ではこう」
$ mv ./private/ ./doragon
もしくは、こう
$ mv private/ doragon
なります」
デビー君「なるほど。同じディレクトリの中で移動させることで名前を変えられる、と」
ナックス「そうです。lsコマンドで確認してみてください」
デビー君「うん。変わってる」
ナックス「ファイル名も基本的にこれと同じです。cd コマンドで doragonディレクトリへ移動してください」
$ cd doragon/
ナックス「次にファイル名を変えましょう。今回は以前の秘蔵エロ画像hadaka-inu.jpgをerina.jpgに変えます」
デビー君「な、なんだか本当のエロ画像の名前みたいで嫌だな……」
ナックス「以下のようにコマンドを打ちます」
$ mv hadaka-inu.jpg erina.jpg
ナックス「lsコマンドできちんと名前が変更できたか確認してください。」
$ ls erina.jpg
デビー君「変わってますな」
ナックス「次は移動させながらファイル名を変えてみましょう」
デビー君「移動させながらファイル名を変える?」
ナックス「そうです。この為に新しくディレクトリを作るのも面倒くさいので、erina.jpgを一つ上のホームディレクトリに移動しつつ、名前を akuma.jpg に変えてみましょう」
デビー君「なんだか難しそうだな」
ナックス「いえいえ。前回のと合わせて冷静に考えれば分かります。次のようにコマンドを打ちます」
$ mv erina.jpg ../akuma.jpg
ナックス「さて、まずは ls コマンドで doragon ディレクトリからerina.jpgが無くなっている事を確認してください」
$ ls
デビー君「うん。確かに無い。無事に上のディレクトリに移動できたって事だね」
ナックス「では、上のディレクトリに移動して
$ cd ../
lsコマンドで確認してみてください」
$ ls
デビー君「あ。akuma.jpgっていうファイルがある!」
ナックス「そうです。例えば先ほどのコマンドは
$ mv erina.jpg ../
と言うコマンドであれば移動させるだけですが、ファイル名を指定することで
$ mv erina.jpg ../akuma.jpg
移動させた上で、その名前に変更することが出来ます」
デビー君「なるほど」
ナックス「さて!mvコマンドにおいて注意点が一つ」
デビー君「え?注意点?」
ナックス「もし『指定した変更後の名前』と同じ名前のファイルが既にあった場合──」
ナックス「Linuxは特にエラーを出すことなく問答無用で上書きします」
デビー君「えー!!何でだよ!Windowsみたいに『同名のファイルが既にありますが上書きしますか?』とか聞いてくれよ!」
ナックス「上官の命令を愚直にこなす無愛想な男。それがLinuxなのです」
ナックス「さて、akuma.jpgファイルですが、元のerina.jpgと言う名前でdoragonディレクトリの中に移動させておいてください」
デビー君「えーっと……こういうことだね」
$ mv akuma.jpg doragon/erina.jpg
ナックス「そうです」
ナックス「悪魔に魂を売ってしまったエリナ。激しい戦いの末に人間の心を取り戻したエリナだったが、ドラゴンの胸の中で彼女は既に虫の息だった……。『ドラゴン……ごめんね。……ありがとう』。息を引き取ったエリナを抱き、泣きつづけるドラゴ──」
デビー君「で、次回は何を教えてくれるの?」
ナックス「mvコマンドでは移動方法と名前の変更方法を教えました。次回はcpコマンドでファイルのコピー方法を教えます(23.ファイルをコピーする。cpコマンド)」