ターミナルウィンドウから:
rm
コマンドを使用すると、ファイルの削除しかできません。コマンド
を使用すると、rmdir
空のフォルダーのみが削除されます。
ファイルなどが含まれるフォルダー内にファイルやフォルダーがネストされたディレクトリがある場合、コマンドを入力しなくてもすべてのファイルとフォルダーを削除する方法はありますか?
それが違いを生む場合、私はターミナルからmac bashシェルを使用しています。MicrosoftDOSやlinuxではありません。
ターミナルウィンドウから:
rm
コマンドを使用すると、ファイルの削除しかできません。コマンド
を使用すると、rmdir
空のフォルダーのみが削除されます。
ファイルなどが含まれるフォルダー内にファイルやフォルダーがネストされたディレクトリがある場合、コマンドを入力しなくてもすべてのファイルとフォルダーを削除する方法はありますか?
それが違いを生む場合、私はターミナルからmac bashシェルを使用しています。MicrosoftDOSやlinuxではありません。
回答:
rm -rf some_dir
-r "recursive" -f "force"(確認メッセージを抑制)
注意してください!
rm -rf *
現在のディレクトリのすべて(フォルダとファイル)を削除します。
しかし、注意してください!このコマンドは、正しいディレクトリにいることが確実である場合にのみ実行してください。
ls -R *
最初に実行して、何が削除されるかを確認してみませんかrm -rf *
はいあります。-r
オプションが伝えrm
ようにRの ecursive、およびその引数をルートファイル全体の階層を削除します。つまり、ディレクトリを指定すると、その内容がすべて削除され、実質的にであることが実行されますrmdir
。
知っておくべき他の2つのオプションは-i
および-f
です。 -i
略で、私は nteractive。それが作るrm
一人ひとりのファイルを削除する前にプロンプトを表示します。 f orceの-f
略です。先に進み、確認なしですべてを削除します。 安全ですが高速です。正しいものを削除することが確実である場合にのみ使用してください。これらを指定してもしなくてもかまいません。それは独立した設定です。-i
-f
-r
そしていつものように、あなたはスイッチを組み合わせることができます:rm -r -i
is is rm -ri
とrm -r -f
is rm -rf
です。
また、あなたが学んでいることがbash
すべてのUnix OS(OS X、Linux、FreeBSDなど)に適用されることにも注意してください。実際、rm
の構文は、すべてのUnix OSのほとんどすべてのシェルで同じです。裏側のOS Xは、実際にはBSD Unixシステムです。
"rm -d"
、ファイルまたは空のディレクトリが削除されます。それでも、OS Xが内部的にBSDであるという点は+1です。
そのため、一部のディレクトリとファイルを除いて、ディレクトリ内のすべてのファイルを削除する方法を探していました。多くの検索を行った後、findを使用してそれを行う方法を考案しました。
find -E . -regex './(dir1|dir2|dir3)' -and -type d -prune -o -print -exec rm -rf {} \;
基本的に、正規表現を使用して、結果から除外するディレクトリを選択し、残りのファイルを削除します。他の誰かがそれを必要とする場合に備えて、ここにそれを出したかっただけです。