LoginSignup
18
9

More than 5 years have passed since last update.

【ど忘れシリーズ】rmコマンドでディレクトリごと消す方法のおさらい

Last updated at Posted at 2018-05-06

はじめに

Linux環境でディレクトリごと消す方法ですが、

  • よく忘れます!
  • よくググります!

ってな方向けです!おさらいを兼ねて見て頂ければと思います。

rmコマンドとは

字のごとくremoveの略でファイルやディレクトリを削除するコマンド。
rmコマンドの使い方は、

rm -[オプション] [対象ファイルまたはディレクトリ]

です。

オプションのおさらい

代表的なオプションをリストアップしました。
指定するときは先頭に「-」をつけてオプションの1文字をくっつけます。

オプション なんの略? どういう意味? どういう時に必要?
f force 警告メッセージを表示しない いちいち「消しますか?」と聞いてくるのがうざったいとき
i interactive 警告メッセージを表示させる 逐一削除するものを確認していきたいとき
r recursive ディレクトリ内を再帰的に削除する ディレクトリを削除するとき。大文字「R」も同じ動きをする
v verbose 削除する前にファイル名を表示 ファイル名を確認していきたいとき

検証

以下のようなディレクトリ構成とします。

hogehoge┳abc
        ┗hogehoge2━efg

hogehogeディレクトリと同じ階層にいると仮定します。

hogehogeディレクトリを丸ごと消す

今回の目標ですね。

  • ディレクトリ(配下のもの全て含む)
  • 確認せず一気に消す

上記の条件により、force(強制), recursive(再帰)ということで。

結論:ということは?

rm -fr hogehoge

これでディレクトリごと消すことができるということですね。

注意点

rm -fr [ディレクトリ]

を実行するときは削除対象を十分に確認してから消しましょう。
root権限で削除対象を誤るととんでもないことが起きます。

参考

【 rm 】 ファイルやディレクトリを削除する

追記

参考のURLには-dオプションが記載されていますが、
実際のLinuxで下記のヘルプを実行してみると-dオプションは存在しない様です。
(ディストリビューションの違い?)
なくなった経緯の分かる方がいらっしゃったらご教授頂ければ幸いです。m(_ _)m

[user@local ~]$ rm --help
Usage: rm [OPTION]... FILE...
Remove (unlink) the FILE(s).

  -f, --force           ignore nonexistent files, never prompt
  -i                    prompt before every removal
  -I                    prompt once before removing more than three files, or
                          when removing recursively.  Less intrusive than -i,
                          while still giving protection against most mistakes
      --interactive[=WHEN]  prompt according to WHEN: never, once (-I), or
                          always (-i).  Without WHEN, prompt always
      --one-file-system  when removing a hierarchy recursively, skip any
                          directory that is on a file system different from
                          that of the corresponding command line argument
      --no-preserve-root  do not treat `/' specially
      --preserve-root   do not remove `/' (default)
  -r, -R, --recursive   remove directories and their contents recursively
  -v, --verbose         explain what is being done
      --help     この使い方を表示して終了
      --version  バージョン情報を表示して終了

By default, rm does not remove directories.  Use the --recursive (-r or -R)
option to remove each listed directory, too, along with all of its contents.

`-' で始まる名前のファイルを削除するには、例えば `-foo' というファイルなら
こういうコマンドを使いましょう
  rm -- -foo

  rm ./-foo

ファイルの削除に rm を使った場合、通常はそのファイル内容を復元できてしまう、
ということには留意しておいてください。もしその内容を本当に復元不可能にする
保証を得たければ、shred の利用を考えてみてください。
18
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
9