我已经尝试了 SU 中的几种方法,但无法做到这一点:我有一个文件夹(例如:/var/www/tmp/),其中包含多个文件和目录。我想删除此目录中的所有文件和文件夹,但保留位于 /var/www/tmp 中的隐藏文件,我该怎么做?
谢谢!
编辑:明确地说,我想在 cronjob 中使用它
答案1
find /var/www/tmp -mindepth 1 -maxdepth 1 ! -name ".*" -exec rm -r -- {} +
将在最大(和最小)深度 1 处查找文件(即直接在给定目录中的文件),并且不是以句点开头并rm -r
以匹配项作为参数执行。
在确切了解它的工作原理之前,请先使用简单的回声或其他方法尝试一下,以免弄巧成拙。
这解决了您关于保留所有隐藏文件的问题。您的主题有点不同,但 find 命令很容易修改为忽略名为 的文件.gitignore
。
答案2
除非你设置了 shell 选项dotglob
,否则cd /var/www/tmp; rm -rf *
将执行你想要的操作