.htaccess を除く隠しファイルを含むディレクトリ内のすべてのファイルとディレクトリを削除するにはどうすればよいですか?

.htaccess を除く隠しファイルを含むディレクトリ内のすべてのファイルとディレクトリを削除するにはどうすればよいですか?

質問が示唆しているように、ユーザーが奇妙なものをアップロードできるフォルダーがある状況があります。数時間ごとにこのフォルダーをクリーンアップする cron ジョブを設定します。

もちろん、セキュリティ上の理由から.htaccessがありますが、私の質問は、そのディレクトリ内のすべてのファイルとディレクトリ(名前がドットで始まる隠しファイルを含む)を削除するにはどうすればよいかということです。.htaccess?

現在、rm -rf *この作業を実行する必要がありますが、ユーザーがドットで始まる名前のファイルをアップロードすると、そのファイルは削除されません。

ご協力いただければ幸いです。ありがとうございます!

答え1

bashの場合:

shopt -s dotglob extglob
rm !(.htaccess)

答え2

私は次のように find を使用します:find /path/to/dir/ -mindepth 1 -not -name .htaccess -delete

関連情報