Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

UNIX(Linux)
入門編

  1. UNIX(Linux)とは
  2. ディストリビューションとは
  3. CentOSとMacOSとCUIについて
  4. 仮想化ソフトウェアを使ったCentOSのインストールとMacOSのCUI環境について
  5. ログインとrootユーザーとシャットダウン等について
  6. コマンドの構造と注意点について
  7. ファイルシステムとカレントディレクトリの移動と表示(cdとpwd)について
  8. 各主要ディレクトリの解説とディレクトリ等の内容表示(ls)について
  9. ちょっと高度なディレクトリの移動(cd)とパスについて
  10. 『ls』コマンドの応用(1)とドットファイルについて
  11. 『ls』コマンドの応用(2)
  12. タブキーを使った入力補完について
  13. ディレクトリの作成方法(mkdir)について
  14. ファイルの簡易作成(touch)とファイルについて
  15. 標準入出力とリダイレクション(>と>>)を使ったファイル生成とechoとcatについて
  1. ファイルとディレクトリの削除(rm)について
  2. ファイルとディレクトリのコピー(cp)について
  3. ファイルとディレクトリの移動と名前変更(mv)について
  4. viエディタとは
  5. viの基本的な使い方(1)
  6. viの基本的な使い方(2)
  7. ターミナル(sshとTera Term)を使ったリモート操作について
  8. ソフトウェアのインストール方法(yumとパッケージ管理ツール)について
  9. ユーザーの概要と確認と追加と切り替え(adduserとsu)について
  10. ユーザーのパスワードと削除と更新と管理者権限での実行(passwdとuserdelとusermodとsudo)について
  11. グループの概要と確認方法(groups)について
  12. グループの追加と削除と設定変更(groupaddとgroupdelとgroupmod)とユーザー追加方法について
  13. パーミッション(権限)について
  14. パーミッションの設定方法(chmodとchown)について
  1. トップページ
  2. UNIX(Linux)入門編 - ファイルとディレクトリの削除(rm)について

ファイルとディレクトリの削除(rm)について

みなさまどうもおはこんばんちわわでございます。

続きましてファイルとかディレクトリの削除方法についてやっていきましょう。

ファイルとかディレクトリを削除するには『rm』コマンドくんを使用します。では使い方について色々とやっていきましょう。

まずファイルの削除方法からですが適当にtest.txtってファイルを『touch』コマンドくんで作ってみます。

[root@localhost ~]# touch test.txt
[root@localhost ~]# ls
test.txt

そしたら『rm test.txt』って入力します。

[root@localhost ~]# rm test.txt

この状態でエンターキーを叩くと以下のように

[root@localhost ~]# rm test.txt
rm: remove regular empty file `test.txt'?

「ファイル削除していいの?」って聞かれますので「y」か「Y」と入力してエンターキーを押してあげて下さい。

[root@localhost ~]# rm test.txt
rm: remove regular empty file `test.txt'? y

そうすると通常のプロンプトが表示され入力待ち状態になります。これでちゃんと削除は出来てます。『ls』コマンドで確認してみると

[root@localhost ~]# rm test.txt
rm: remove regular empty file `test.txt'? y
[root@localhost ~]# ls

ちゃんと『test.txt』は消えてますね。基本的な使い方はこんな感じになります。

んで「ファイル削除していいの?」っていう返答についてなんですがこれが若干OSによって違いがあったりします。CentOSの場合は「最初の文字が「y」または「Y」だった場合に「yes」と判定する」って感じになるので以下のように

[root@localhost ~]# touch test.txt
[root@localhost ~]# rm test.txt
rm: remove regular empty file `test.txt'? y初音ミク!
[root@localhost ~]# ls

「y初音ミク!」なんてへんてこりんな記述をしてもOKだったりします。

逆に「削除したくないぜー」なんてときには最初の文字が「y」または「Y」以外にしてしまえばOKです。なので何も入力しない状態でエンターキーを押してしまうのが楽ちんかもですね。

続いてファイルではなくディレクトリの削除方法についてです。まず『mkdir』くんで適当に『test』ディレクトリを作ってあげて

[root@localhost ~]# mkdir test

それを『rm』コマンドで削除しようとするとこうなります。

[root@localhost ~]# rm test
rm: cannot remove `test': is a directory

「testはディレクトリで削除できないよー」って怒られちゃいましたね。こんな感じで何もオプションを付けない『rm』コマンドだとディスプレイの削除をすることは出来ません。じゃあどうするのかというと『-r』オプションを付けてあげます。こんな感じですね。

[root@localhost ~]# rm -r test

そうすると先程のフォルダ削除時と同じように「削除していいっすかー?」って聞かれるので「y」とかを入力してあげればOKです。

[root@localhost ~]# rm -r test
rm: remove directory `test'? y

こんな感じですね。『rm』コマンドの使い方はそれほど難しくないかと思います。

続いてちょいと便利なオプションをいくつか紹介しておきます。まず削除するときって「削除していいっすかー?」ってご丁寧に確認してくれるわけなんですがその確認が邪魔っていうちょっと切ない気分になっちゃうこともあるかと思います。

例えばディスプレイを適当に作って更にその中にファイルを適当に3つくらい作って

[root@localhost ~]# mkdir test
[root@localhost ~]# touch test/test1.txt
[root@localhost ~]# touch test/test2.txt
[root@localhost ~]# touch test/test3.txt

削除しようとするとこうなります。

[root@localhost ~]# mkdir test
[root@localhost ~]# touch test/test1.txt
[root@localhost ~]# touch test/test2.txt
[root@localhost ~]# touch test/test3.txt
[root@localhost ~]# rm -r test/
rm: descend into directory `test'? y
rm: remove regular empty file `test/test3.txt'? y
rm: remove regular empty file `test/test1.txt'? y
rm: remove regular empty file `test/test2.txt'? y
rm: remove directory `test'? y

毎回確認されちゃうのでちょっと大変ですね。ファイルが100000個とかあったらそれだけで1日が終わってしまいますしファイルが10000000000000000000個とかあったらおじいさんおばあさんになってしまいますね。

そんな時には『-f』オプションを付けてみましょう。そうするとこんな感じで

[root@localhost ~]# mkdir test
[root@localhost ~]# touch test/test1.txt
[root@localhost ~]# touch test/test2.txt
[root@localhost ~]# touch test/test3.txt
[root@localhost ~]# rm -rf test/
[root@localhost ~]# ls

確認されずにそのままさくっと削除してくれますのでとっても便利です。

続いて削除した内容をどっかに保存しておきたい、という場合です。その場合は『-v』を付けてあげましょう。そうするとこんな感じで

[root@localhost ~]# mkdir test
[root@localhost ~]# touch test/test1.txt
[root@localhost ~]# touch test/test2.txt
[root@localhost ~]# touch test/test3.txt
[root@localhost ~]# rm -rfv test
removed `test/test3.txt'
removed `test/test1.txt'
removed `test/test2.txt'
removed directory: `test'

削除したファイルとかディレクトリを標準出力で教えてくれます。

そしてお察しの良い方はもう予想がついてるとは思いますが「出力先は標準出力」って事なので前回使用した『>』とかを使えば削除した情報をそのままテキストとしてファイル保存する事が可能です。こんな感じですね。

[root@localhost ~]# mkdir test
[root@localhost ~]# touch test/test1.txt
[root@localhost ~]# touch test/test2.txt
[root@localhost ~]# touch test/test3.txt
[root@localhost ~]# rm -rfv test > remove_list.txt
[root@localhost ~]# cat remove_list.txt
removed `test/test3.txt'
removed `test/test1.txt'
removed `test/test2.txt'
removed directory: `test'

これもかなり便利なのでぜひ使ってみて下さい。

そして超重要な注意点なのですが『rm』コマンドくんで削除したファイルは完全に闇に葬られるため復旧することは出来ません

WindowOSとかMacOSだとファイルを削除したとしても実質ゴミ箱に移動するだけでゴミ箱から復旧させる事ができますよね。『rm』コマンドくんだとそうはいかないのでここ間違えないよう注意です。もし重要なファイルだった場合は『cp』コマンドくんとかでバックアップを作って置くと良いかもです。『cp』コマンドくんについては次の記事で解説しますね。

前にも解説しましたがディレクトリを削除するコマンドで『rmdir』という子が居ます。

この子もディレクトリを削除できるコマンドなのですが「空のディレクトリしか削除出来ない」という制約があるのであまり使い物になりません。多分覚えなくてOKかなと思います。

というわけで以上になりますね。続いての記事ではファイルとディレクトリのコピーについてやっていきましょう。

ではでは失礼致します。

この記事は桜舞が執筆致しました。

著者が愛する小型哺乳類

桜舞 春人 Sakurama Haruto

ISDN時代から様々なコンテンツを制作しているちょっと髪の毛が心配な東京在住のプログラマー。生粋のロングスリーパーで、10時間以上睡眠を取らないと基本的に体調が悪い。好きなだけ寝れる生活を送るのが夢。ゲームとスポーツと音楽が大好き。誰か髪の毛を分けて下さい。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。