ターミナル(bashシェル)を使用してファイルとディレクトリをすばやく削除する方法[終了]


331

ターミナルウィンドウから:

rmコマンドを使用すると、ファイルの削除しかできません。コマンド
を使用すると、rmdir空のフォルダーのみが削除されます。

ファイルなどが含まれるフォルダー内にファイルやフォルダーがネストされたディレクトリがある場合、コマンドを入力しなくてもすべてのファイルとフォルダーを削除する方法はありますか?

それが違いを生む場合、私はターミナルからmac bashシェルを使用しています。MicrosoftDOSやlinuxではありません。


今後ファイルを復元したい場合に備えて、そのような場合に「rm」を使用しないでください。「rm-trash」を使用してください:github.com/nateshmbhat/rm-trash
Natesh bhat

回答:


760
rm -rf some_dir

-r "recursive" -f "force"(確認メッセージを抑制)

注意してください!


26
+1と「注意してください!」一部...間違いなくすぐに良い日を悪い日に変えることができる「Sawzall」コマンド。
itsmatt 2010

5
好きいけない「#RM -rf /」あなたはそれを後悔でしょう:
ダース・ベイダー

1
@itsmatt:あなたは彼らが言うことを知っています...誰かにソーザルを与えてください、そして突然すべての問題は何時間もの楽しみのように見えます!
ジム・ルイス

164
Macでは?代わりbrew install trashtrash -rf some_dirこれを実行してください。これにより、Prestigeスタイルをエーテルに消失させるのではなく、不要なディレクトリをごみ箱に移動します。(ソース
ザクダンス2013

4
「ゴミ」アプローチは素晴らしいです!
anopres 2014年

59
rm -rf *

現在のディレクトリのすべて(フォルダとファイル)を削除します。

しかし、注意してください!このコマンドは、正しいディレクトリにいることが確実である場合にのみ実行してください。


17
rm -rfは非常に危険なコマンドです。削除するフォルダーを常に注意して指定する必要があります。
eomeroff 2013

8
ls -R *最初に実行して、何が削除されるかを確認してみませんかrm -rf *
Hammad Khan

これは私にはうまくいきます、ありがとう。
モニカ・ヒューブナー

14

はいあります。-rオプションが伝えrmようにRの ecursive、およびその引数をルートファイル全体の階層を削除します。つまり、ディレクトリを指定すると、その内容がすべて削除され、実質的にであることが実行されますrmdir

知っておくべき他の2つのオプションは-iおよび-fです。 -i略で、私は nteractive。それが作るrm一人ひとりのファイルを削除する前にプロンプトを表示します。 f orceの-f略です。先に進み、確認なしですべてを削除します。 安全ですが高速です。正しいものを削除することが確実である場合にのみ使用してください。これらを指定してもしなくてもかまいません。それは独立した設定です。-i-f-r

そしていつものように、あなたはスイッチを組み合わせることができます:rm -r -iis is rm -rirm -r -fis rm -rfです。

また、あなたが学んでいることがbashすべてのUnix OS(OS X、Linux、FreeBSDなど)に適用されることにも注意してください。実際、rmの構文は、すべてのUnix OSのほとんどすべてのシェルで同じです。裏側のOS Xは、実際にはBSD Unixシステムです。


1
上記のすべてのオプションは、リストされているすべてのUnixフレーバーの標準ですが、いくつかの違いもあります。たとえば、OS X(Linuxは除く)にはがあり"rm -d"、ファイルまたは空のディレクトリが削除されます。それでも、OS Xが内部的にBSDであるという点は+1です。
David Gelhar、2010

True --- POSIXサブセットは、Unixen全体で一貫して動作することが(かなり)保証されていますが、それ以外のものは動作する場合と動作しない場合があります。
Antal Spector-Zabusky、2010

2

そのため、一部のディレクトリとファイルを除いて、ディレクトリ内のすべてのファイルを削除する方法を探していました。多くの検索を行った後、findを使用してそれを行う方法を考案しました。

find -E . -regex './(dir1|dir2|dir3)' -and -type d -prune -o -print -exec rm -rf {} \;

基本的に、正規表現を使用して、結果から除外するディレクトリを選択し、残りのファイルを削除します。他の誰かがそれを必要とする場合に備えて、ここにそれを出したかっただけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.