7

現在のディレクトリを含む現在のディレクトリからすべてのファイルとサブディレクトリを削除するにはどうすればよいですか?

4

6 に答える 6

15

GNU ツールを使用した bash では、次のようにします (ほとんどの場合、安全なはずです)。

rm -rf -- "$(pwd -P)" && cd ..

bash の下ではなく、GNU ツールがない場合は、次を使用します。

TMP=`pwd -P` && cd "`dirname $TMP`" && rm -rf "./`basename $TMP`" && unset TMP

なぜこれがより安全なのか:

  • ディレクトリがダッシュで始まる場合に引数リストを終了します--(非bash:./ファイル名の前)
  • pwd -Ppwd実際のディレクトリではなく、それを指すシンボリックリンクにいる場合だけではありません。
  • "ディレクトリにスペースが含まれている場合は、引数を s で囲みます。

いくつかのランダムな情報 (bash バージョン):

  • 最後のcd ..は省略できますが、そうしないと存在しないディレクトリになります...

編集:kmkaplanが指摘したように、UNIXでは常に始まる完全なパス名を返す--ため、これは必要ありませんpwd/

于 2009-02-15T14:21:18.700 に答える
4
olddir=`pwd` && cd .. && rm -rf "$olddir"

そうしないと、現在のcd ..ディレクトリを削除できないため、失敗します。

于 2009-02-15T14:14:14.693 に答える
2
rm -fr "`pwd`"
于 2009-02-15T14:16:04.843 に答える
1

これは DOS / Windows CMD で可能だと思いますが、コマンド間でデータをパイプする方法が見つかりません。他の誰かがその修正を知っているかもしれませんか?

FOR /F %i IN ('cd') DO SET MyDir=%i | CD .. | RD /S %MyDir%
于 2009-02-15T15:14:02.303 に答える
0

オペレーティング·システム?*NIX ベースのものでは、'rm -rf directory/' を探しています。

注: 「再帰的」の「-r」フラグは危険です!

于 2009-02-15T14:13:16.410 に答える