現在の作業ディレクトリのすべての内容を削除したいと思います。これを効率的かつエレガントに行う方法は?
いくつかのファイルとディレクトリがあり、そのいくつかはドットで始まります。たとえば、次のようになります。
touch .abc; touch abcd ; mkdir foobar; touch "file name" "#"
私はこのディレクトリを空にするためのposix互換性とエレガントなソリューションを探しています。私のアイデアのいくつかを投稿する予定ですが、それらのどれも完璧ではありません。
答え1
rm -rf -- * .*
これは移植可能で動作しますが、withに加えて次のzsh
警告が表示されるため、見苦しいです。
rm: cannot remove directory: `.'
rm: cannot remove directory: `..'
答え2
この試み:
find . -maxdepth 1 -not -name \. -exec rm -rf \{\} ;
答え3
POSIX的に:
rm -rf -- * .[!.]* ..?*
ファイルのリストが大きすぎると失敗する可能性がありますが、以下は失敗しません。
find . ! -name . -prune -exec rm -rf {} +
そしてzsh
:
rm -rf -- *(D)
答え4
どうですか?
rm -rf * .[a-z]* .[A-Z]* .[0-9]*
それはうまくいくでしょうか?それとも一致する必要がある他のファイル名パターンはありますか?