私のスクリプトには、ディレクトリからすべてのファイルを削除するコマンドがありますwww
。
rm -rf www/*
ただし、場合によってはwww
ディレクトリが空です。それから彼はスクリプト全体が失敗するように命じました。
空のディレクトリで失敗しないより良いコマンドがありますか?
編集:ファイルを保存したいので、隠されたファイルが削除されていない場合は完璧です.gitkeeep
。私が受け入れることができる最悪のシナリオ... && touch .gitkeep
ベストアンサー1
POSIXの使用find
:
find www -path 'www/[!.]*' -prune -exec rm -r -- {} +
設計上の引数が指定されていない場合、findは失敗しません。バラよりマニュアルの例8これはこれを明らかに示しています。
オプション意味:
-path
www/
ドットで始まり、後にドットが来ないパスのみを検索することを指定します(したがって、削除リストから隠しファイルを除外します)。-prune
findがディレクトリから降りようとする試みを防ぎます(すでにこれをrm -r
行うことを使用しています)。--
inでは、rm -r -- {} +
ハイフンで始まる場合でも見つかったファイルを処理できます。