正如问题所暗示的,我遇到过这种情况:我有一个文件夹,用户可以在其中上传奇怪的东西。设置一个 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