キャリテク!マガジン
- TOP
- キャリテク!マガジン
- Linuxのディレクトリを操作してみた(移動・削除・名前の変更)
Linuxのディレクトリを操作してみた(移動・削除・名前の変更)

こんにちは、吉政創成 アシスタントの菱沼です。
前回はディレクトリとは何かについてまとめ、実際にディレクトリを作成するところまで行いました。その際、相対パスと絶対パスとは何かについても確認しています。 今回はディレクトリの削除や移動、名前の変更と言った、ディレクトリの操作について学んでいきたいと考えています。
では、今回も「さわって学ぶLinux入門テキスト/赤星リナ氏著(マイナビ出版)」を片手に勉強していきます。どうぞ超初心者の方、お付き合いいただければ幸いです。
まずはおさらいから(pwd / ls / mkdir)
以前作成したユーザーtest2020のアカウントを利用して作業します。 まず前回までのおさらいですが、ログインした後、現在いるディレクトリはどこであるか、またそのディレクトリの中には何があるかを以下のコマンドを使って確認します。
- [ pwd ] 現在、自分がいるディレクトリの位置を確認する
- [ ls ] 今いるディレクトリの中身を確認する

それが上記の画像です。
test2020でログインした直後にいたカレントディレクトリ(現在地)は「/home/test2020」で、test2020というディレクトリの中にはtest1、test2、test3という3つのディレクトリが存在していることがわかります。

ディレクトリの作成は[mkdir]で行います。test4、test5というディレクトリを新たに作成できたことが確認できました。
ディレクトリの名前を変更したい!(mv)
さて、自分で作っておいてなんですが、testばっかり続いて正直見にくいなと感じ始めていたので、名前を変えるいい機会と思って名前を変えてみたいと思います。名前を変える方法は次の通りだそうです。
P.57
●ディレクトリ名の変更と移動[ mv ]
[mv]コマンドでは、ディレクトリやファイルの名前を変えたり、別のディレクトリに移動させたりすることができます。>>>mv ディレクトリA ディレクトリB
のように指定した場合、ディレクトリBが存在すればディレクトリBへの移動、存在しなければディレクトリ名の変更になります。
では早速やってみます。まずはtest1~4のディレクトリの名前を、春夏秋冬に変更してみました。

無事、変更できていることが確認できました。(ソートされてしまうため、頭に数字を付けました。)
ところで、mvにはディレクトリの移動という役割もあると書かれています。これはディレクトリがごっそり移動するのか、それとも対象としていしたものだけが移動するのか…?と疑問に思ったので、確認してみます。
まずはtest5の中に、shogatsu.txtというテキストファイルを作成します。ファイルの作り方は[ touch (ファイル名) ]で作成できるそうです。こちらは後日、別の操作の時にもまとめてみたいと思います。
その後、shogatsu.txtが入ったディレクトリtest5を4_fuyuのディレクトリに移動してみました。

それがこちらです。結果としてはtest5がそのまま4_fuyuの中に移動しました。そのため、shogatsu.txtのアドレスは「/home/test2020/4_fuyu/test5/shogatsu.txt」になります。
では次に、shogatsu.txtをtest5から、4_fuyuの直下に移動してみます。

カレントディレクトリが4_fuyuなので、test5は一つ下の階層に存在することになります。
そのため、shogatsu.txtを指定するには、test5/shogatsu.txtとしてあげる必要があります。移動先は4_fuyuの直下になりますので、shogatsu.txtをそのまま指定してあげれば移動は成功しました。
mvで注意したいこと
調べてみたところ、複数のファイルを一緒に別のディレクトリに移動することもできるのだそうです。ただその場合、移動先のディレクトリが万が一存在していなかった場合、ファイル名が、移動先に指定したかったディレクトリの名前に変わってしまうようです。
まずは二つのファイルを一度に移動してみます。

たしかに移動できました。
では次に、ディレクトリの名前がなかった場合にどうなるか、です。

確かに変わってしまいました…。
うっかり存在しないディレクトリ名を指定しないようにしなければいけませんが、人間だれしもウッカリはあります。なので、それを防ぐには、「/.」を付けてあげればいいそうです。

付けたらエラーメッセージで存在しないディレクトリであることを教えてくれました。
参考:【Linuxコマンド】mvでファイル・ディレクトリを移動する方法
mvでは上書きの禁止や移動前に確認メッセージを表示する、バックアップするなどのオプションを設定することも可能だそうです。詳しく知りたい方は以下URLをご参照ください。
参考:【 mv 】コマンド――ファイルやディレクトリを移動する/名前を変更する
いらないディレクトリを削除しよう!
さて、次にディレクトリの削除です。
P.57
●空のディレクトリの削除[rmdir]
中にディレクトリやファイルがない場合は[rmdir](ReMove empty DIRectories)で削除できます。
>>> rmdir work …空のディレクトリworkを削除P.58
●空ではないディレクトリの削除[rm -r]
ディレクトリに入っているデータごと削除したいときは[rm -r]でディレクトリ名を指定します。
>>> rm -r bbb …データの入っているディレクトリでも削除
ではカレントディレクトリを4_fuyuにして、test5を削除してみます。

次に、ディレクトリの中身がある状態でディレクトリを削除する方法を試してみます。

まずはhogehogeというディレクトリを作成し、中にkesareru.txtを作成しました。
[ rmdir ]で本当に削除できないことを確認するために実行してみると、「hogehogeの中身が空っぽではないので削除できません」と怒られました。
その後、[ rm -r ]で実行してみると確かに削除できたことが確認できました。
[ rm ]を使えばファイルも削除できるようですので、先ほどの実験で生まれたkawachataを削除しておきたいと思います。ファイルの削除の場合は[ rm (ファイル名) ]で消せるそうです。

rmでも削除の前に確認メッセージを出すなどのオプションを付けることができるそうです。
詳しく知りたい方は以下URLでrmについて細かくまとめられていましたのでご確認ください。
参考:ファイル・ディレクトリを削除するrmコマンドについて詳しく!【Linuxコマンド集】
今回ディレクトリの操作で利用したコマンドまとめ
今回、利用したコマンドは次の通りです。
- pwd :カレントディレクトリ(現在地)を確認する
- ls :ディレクトリの中身を確認する
- cd :ディレクトリの移動
- mkdir:ディレクトリを作成する
- touch:ファイルを作成する
- mv :ディレクトリやファイルを移動する、名前を変更する
- rmdir:空っぽのディレクトリを削除する
- rm -r:ディレクトリの中身ごと削除する
- rm :ファイルを削除
それでは今回はこちらで終了です。お付き合い頂きありがとうございました。