• 締切済み

rmとrmdirの違い

お世話になっています。 この二つの違いについての質問ですが rmとrmdirの違いというのは 「rmdir」はディレクトリは消せるが 「rm」はディレクトリは消せないというものですよね? また、 「rmdir」は空のディレクトリしか消せなく 「rm -r」はディレクトリの中身の有無に関係なく消せるんですよね? この二つのコマンドに分けている意味というものはあるのでしょうか?

みんなの回答

  • RITYABOU
  • ベストアンサー率26% (4/15)
回答No.4

rmdir は mkdir と対になっている為だと思っていたのですが、 どうなんでしょうね。 rm の方は、ファイル、ディレクトリ、スペシャルファイル、等々 何でも OK という事で。

全文を見る
すると、全ての回答が全文表示されます。
  • yurarinco
  • ベストアンサー率34% (20/58)
回答No.3

補足です。 OSのシステムコールとプログラムとの関係については、 私は実際には読んだことが無いのですが、参考URLの 「プログラムはなぜ動くのか」という本に 説明が書いてありそうな気がします。

参考URL:
http://www.amazon.co.jp/exec/obidos/ASIN/4822281019/qid%3D1021110015/250-3855468-6757044
全文を見る
すると、全ての回答が全文表示されます。
  • yurarinco
  • ベストアンサー率34% (20/58)
回答No.2

これはまったくの私の想像で、当たってるかどうかは 全然自信が無いですが、OSのシステムコールで ファイルを削除する機能とディレクトリを削除する機能が それぞれあるから、それぞれの機能を実装した基本的で 簡単なrmとrmdirというコマンドがあるのでは ないのでしょうか。 逆にrmとrmdirのそれぞれの機能を実現するために OSの機能が設計されたのでは?と突っ込まれても 私には反論できませんが...。(^_^;

全文を見る
すると、全ての回答が全文表示されます。
  • jakarta
  • ベストアンサー率38% (607/1597)
回答No.1

やはり「rm」しかなければ中身のあるディレクトリをうっかり消してしまう 恐れがあります。そこで中身が空でないとディレクトリを削除できない 「rmdir」があるのだと思います。 mvでファイルを整理して「rmdir」でサクッと空のディレクトリだけ消す ことができますが、「rmdir」がなかったらいちいち空かどうか確認したり 複雑なコマンドを打つ事になってしまいます。

ryo-3
質問者

補足

う~ん。私の考えが馬鹿なのでしょうか・・・。 なぜ作者は rmをつかってディレクトリの場合、中身が入っている場合はエラーを出すという風にしないで分けたのでしょうかね・・・ って、これを言ったらやっぱりきりがないのでしょうか・・・? 他のコマンドでも同様に・・・ また、もしrmdirコマンドがなく、rmコマンドですべてをやりくりしてた場合はやはり確認もせずに消すというコマンドになっていたんでしょうかね・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • rmdirコマンドについて

    現在、Linuxについて学習を進めています。 rmdirコマンドは空ディレクトリしか削除できないとのことで、 どうにも使い辛く、専らrm -rコマンドを使っています。 rmdirコマンドについて、他の削除コマンドにない何か優れた点はあるのでしょうか?(こういう場合は、rmdirの方が便利だ・・・など)

  • rmとrmdirについて

    超初心者です。 質問なのですが、rmとrmdirコマンドが別に存在しているのは、誤って空ではないディレクトリを消してしまわないためですよね? その他には何かあるんでしょうか? また、仮にrmコマンドで通常のファイルのようにディレクトリ・ファイルが消せたらどんなことが起きるんでしょうか?教えてください。

  • rm,rmdirコマンドのオプションについて

    ファイルを削除するためにrm、ディレクトリごと削除するときにrmdirを使いますよね。そのときのオプションで強制的に削除するときにーfというオプションを指定すると、「rmdir オプションが違います -- f 」というメッセージが出てきて削除できません。すみませんがよろしくお願いします。

  • rmdirでフォルダが消せません

    rmdirでフォルダ(フォルダ1)とその中のフォルダ(フォルダ2)を削除したく思っています。 それでまずフォルダ2をrmdirで削除しました。 ここまでは成功するのですが 次にフォルダ1を削除しようとすると Directory not empty のエラー文が出てしまいます。 確認してみたところフォルダ1の中はフォルダ2がしっかり削除されていて空でした。 何か特別な手続きを踏まないといけないのでしょうか? php文を載せておきます。 どなたか助けてください。 $o_dir=opendir("./up/".$1."/"); rmdir("./up/".$1."/".$2); //これは削除できているようです closedir($o_dir); $o_dir=opendir("./up/"); rmdir("./up/".$1); closedir($o_dir);

    • ベストアンサー
    • PHP
  • rm できない

    使わなくなった、ディレクトリを削除しようと以下のコマンドを実行したのですがエラーが出て削除できません。 [root@ns www]# rm -rf test rm: cannot remove directory `test/123/111': Directory not empty rm: cannot remove directory `test/123': Directory not empty rm: cannot remove directory `test': Directory not empty HDDの物理的な故障でなければいいのですが・・・

  • rm,cpコマンドの置き換えについて

    linux初心者のため、困っています。 組み込みで、ディレクトリの削除とコピーを行いたいのですが、置き換えができません。どなたか教えてください。 コマンドでは以下のようになるのですが… (1)rm -r -f /ディレクトリ名/ (2)cp -r -f /元ディレクトリ名/ /先ディレクトリ名/ 無知で申し訳ありませんが、よろしくお願いします。

  • rmコマンドについて

    rm -r dir_hoge ※dir_hoge = フォルダ名 -- dir_hoge |-- 1.dat `-- 2.dat このような場合 rm: descend into directory 'dir_hoge'? y rm: descend into directory '1.dat'? y rm: descend into directory '2.dat'? y このように、毎回「y/n」の質問をされます。 数千ものファイルがあった場合「y」を1000回おさなければならないのでしょうか? 簡単なものがあれば宜しくお願いします。 目的は「ディレクトリを簡単に削除したい」です。

  • ディレクトリの削除について

    perlにてディレクトリの作成を行ったのですが、間違えて最後の改行コードを抜き忘れてしまい"aaa\r\nbbb\r\n"というようなディレクトリ名のディレクトリができてしまいました。 このディレクトリを削除したく、以下の事を試したのですがいずれもうまくいきませんでした。 ・FTPツールから削除 ・コマンドプロンプトからrmdir ・perlにてrmdir("aaa\r\nbbb\r\n")実行 このディレクトリを削除することは出来ないのでしょうか。 宜しくお願いします。

    • ベストアンサー
    • Perl
  • RHL7で多数のファイル削除(rm)方法

    Red Hat Linux7でHD容量が足りなくなったので、新しいHDをフォーマット後あるディレクトリにマウントしました。 この後、古いHD内のファイルを全て削除しようと思い、rm -r [ディレクトリ名]を実行しましたが、消すファイルを聞いてきて、いちいちy、リターンを押さなければなりません。数が多いので面倒です。 良い方法を教えてください。 rm -rは強制削除だとおもうのですが‥‥。 削除コマンドなので、ビビッています。 RHL7の素は、できるlinuxサーバという本に添付されていたものです。 よろしくお願いします。

  • ~以外を削除する場合(rmコマンド)

    linuxのコマンドで ~以外のファイル、ディレクトリを全て削除したい時は どのような記述をすれば良いのでしょうか? シェルスクリプトではなくrmコマンド1つで削除したのいですが… 例: tar以外のファイル・ディレクトリを    すべて削除したい場合など どなたかご存知の方がいらっしゃったら 教えてください。よろしくお願い致します。