端末ウィンドウから:
rm
コマンドを使用すると、ファイルを削除することしかできません。rmdir
コマンドを使用すると、空のフォルダーのみが削除されます。
ファイルを含むフォルダ内にファイルやフォルダを入れ子にしたディレクトリがある場合など、コマンドを何度も入力しなくてもすべてのファイルやフォルダを削除する方法はありますか。
それが違いを生むのであれば、私はMicrosoft DOSやLinuxではなく、端末からMac bashシェルを使っています。
rm -rf some_dir
-r "recursive" -f "force"(確認メッセージを表示しない)
注意してください!
rm -rf *
現在のディレクトリ内のすべてのもの(フォルダとファイル)を削除します。
しかし注意してください。 このコマンドは、確実に正しいディレクトリにいることを確認した場合にのみ実行してください。
はいあります。 -r
オプションは、rm
が r再帰的で、引数をルートとするファイル階層全体を削除します。つまり、ディレクトリを指定すると、そのコンテンツがすべて削除され、rmdir
と実質的に同じことが実行されます。
知っておくべき他の2つのオプションは、-i
と-f
です。 -i
は 私インターアクティブ;すべてのファイルを削除する前にrm
プロンプトが表示されます。 -f
は fオース;それは先に進み、尋ねることなくすべてを削除します。 -i
はより安全ですが、-f
はより高速です。 完全に確実正しいものを削除する場合にのみ使用してください。これらを-r
で指定するかどうかを指定できます。それは独立した設定です。
通常どおり、スイッチを組み合わせることができます。rm -r -i
はrm -ri
で、rm -r -f
はrm -rf
です。
また、学習していることは、すべてのUnix OS(OS X、Linux、FreeBSDなど)のbash
に適用されることに注意してください。実際、rm
の構文はほとんどすべてのシェルすべてのUnix OS。ボンネットの下のOS Xは、実際にはBSD Unixシステムです。
それで私は、いくつかのディレクトリとファイルを除いて、ディレクトリの中のすべてのファイルを削除する方法をずっと探していました。たくさんの検索の後、私はfindを使ってそれをする方法を考案しました。
find -E . -regex './(dir1|dir2|dir3)' -and -type d -Prune -o -print -exec rm -rf {} \;
基本的には正規表現を使用して結果から除外するディレクトリを選択してから残りのファイルを削除します。他の誰かがそれを必要とした場合に備えて、ここにそれを出したかっただけです。