rmコマンドでディレクトリを簡単に削除する方法

このQ&Aのポイント
  • rmコマンドを使用してディレクトリを削除する際に表示される「y/n」の質問について解説します。
  • 質問文章の要点は、rmコマンドでディレクトリを削除する際に「y/n」の質問が表示されることにより、数千ものファイルがある場合に手間がかかる点です。
  • ディレクトリを簡単に削除する方法を探している方にとって参考になる内容です。
回答を見る
  • ベストアンサー

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回おさなければならないのでしょうか? 簡単なものがあれば宜しくお願いします。 目的は「ディレクトリを簡単に削除したい」です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

まず、そもそも質問される原因としては、 該当ファイルのパーミッションがライティング制限がある状態。 ファイルに書き込み制限がかかっていたとしても、 親ディレクトリに書き込み許可があるならば、 ファイルは編集はできなくとも削除作成はできる状態にあります。 そのけっか、この質問がくるというパターン。 chmod で変更すれば質問は来ません。 あるいは、aliasでiオプションが定義されているパターンです。 ~/.bashrcなどにalias rm="rm -i"などあればコメントアウトすることで質問は来ません。 さて、それでも質問がくるとか、 質問自体は来てほしいけれど、すべてをyesで片付けたいならば、 $ rm -rf dirで強制的に消すか、あるいは、 永遠にyを出力し続けるyesコマンドをパイプでつなぎ、 $ yes | rm -r dirとすることです。

devman
質問者

お礼

丁寧にありがとうございました。 無事、質問が来なくなるようにディレクトリを削除することができました。

その他の回答 (1)

  • agehage
  • ベストアンサー率22% (2549/11339)
回答No.1

rm -R -f hoge_dir これで一発でhoge_dirを消し去ります。 確認もないのでご注意。 http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230871/

関連するQ&A

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

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

  • RHL7で多数のファイル削除(rm)方法

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

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

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

  • rmdirコマンドについて

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

  • コマンドプロントでファイルの削除方法

    コマンドプロント初心者です。 やりたいことは、バッチ処理にて、指定したフォルダ内の「*.dat」ファイルを削除することです。 ネットで調べてみたんですが、削除されません。 また、削除してよいかの確認メッセージも表示されません。 何が悪いのかご教授お願いします。 以下が作成したバッチファイルの中身です。 -- ********************************** -- Outlook 2010 添付ファイルのキャッシュを削除する -- ********************************** C:\Temp>del *.dat C:\Temp\*.dat、よろしいですか (Y/N)?

  • コマンドプロンプトのdirで見えないファイルの削除

    不正な記号を使ったフォルダ名とファイルが存在し、削除できずに困っています。 現象は以下の通りです。 ・起動時に毎回チェックディスクが行われ、該当のファイル名やフォルダ名が出てくる。 ・エクスプローラーで削除をすると、「ファイルを削除できません。送り側のファイルまたはディスクから読み取れません。」 ・ひとつ上のフォルダごと削除しようとしても、「指定されたファイルが見つかりません。」 ・コマンドプロンプトでdirで見てもファイル/ディレクトリは表示されない。 (「<DIR> .」と「<DIR ..>」のみで0個のファイル、2個のディレクトリと表示) ・ネットで調べたコマンドを使って削除しても「指定されたファイルが見つかりません」「ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。」で削除できない。   del "\\?\<ドライブ名>:\*****\*****\ファイル名"   rd /s "\\?\<ドライブ名>:\*****\*****\フォルダ名" エクスプローラーのドライブのプロパティ→ツールでチェックディスクを、オプションを両方チェックしてまたは片方ずつで行ってから上の作業をしても同じです。 自分で調べてみてもこれ以上の方法が見つからなかったのですが、削除する方法はあるでしょうか?

  • コマンドプロンプトの"*"の使いかたを教えてください。

    たとえば下記のフォルダが並んでいるところでですが、 C:. ├─20090501 ├─20090502 ├─20090503 ├─20090504 ├─20090505 ├─20090506 ├─20090507 ├─20090508 ├─20090509 └─20090510 このディレクトリにて、dir 2009050* とコマンドを 打ち込むと上記のフォルダが正しく出力されます。 しかし・・・ rd 2009050* と打ち込むと・・・ ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。 アスタリスクはこの場合どのように使ったらよろしいのでしょうか? 教えてください。

  • ディレクトリ削除の DOS コマンド

    Windows XP SP2 ログオン・ログオフスクリプトでテンポラリディレクトリ内の掃除をしたいと思っています(ログオフ時に全削除) ディレクトリ内のファイルは del /F /Q /S *.* で消せるのですが、ディレクトリが消せません。ディレクトリを削除するコマンド rd はワイルドカードが使えないようです。 Unix のように rm -r ./* とかって無いのでしょうか?

  • 日付名のディレクトリを世代管理したい

    linuxのコマンドについて教えてください。 あるディレクトリ内で日付のディレクトリを3世代管理しています。 今まではrmで手動削除していたのですが、他のディレクトリでも同様の作業をしたいので、 スクリプトで行おうと考えています。 ただ、ディレクトリ内には様々な名称のフォルダ・ファイルがあり、 上手く日付のディレクトリを取ってこれません。 イメージとしては日付のディクトリだけを取ってきて、ソートし古いのを削除でいけると思うのですが… 詳細は以下です。 同一ディレクトリ内に以下のフォルダがある 20150101 20150103 20150105 20150107 hoge test sample.txt などなど この中で日付のディレクトリの4番目に古いディレクトリを削除したい。 (20150101のディレクトリだけ削除するイメージです) どのようにコマンドを打てばいいか教えていただけますでしょうか? よろしくお願い致します

  • PHP 削除やコピーが出来ない

    PHP 削除やコピーが出来ない $rcd = unlink("test.txt"); $rcd = `rm test.txt`; $rcd = exec('test.txt'); 上記のように、削除コマンドを実行しても削除されない。 コピーコマンドも、同じくで copy("hoge.txt", "hoge.dat"); fcopy("hoge.txt", "hoge.dat", TRUE); `cp hoge.txt hoge.dat` と、やってみたが削除対象ファイルなどに変化はありません。 ちなみに、削除対象ファイルのパーミッションは、644。 PHPファイルは、755. レンタルサーバーを、二つほど変えてみたが同じでした。 エラーを表示することも無かったので、何が悪いのかさっぱり分かりません。 何か、よい方法を教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP