我正在尝试使用find删除Web托管环境中缓存目录下的所有文件。
find /home/hosted -maxdepth 2 -type d -name "cache" -print -exec rm -rf "{}/*" \;
我尝试了几种变体,但由于某种原因,find不会删除缓存/ *文件。有人看到我错过的任何东西吗?
由于
答案 0 :(得分:1)
-exec
的参数未按预期扩展。这是因为-exec
直接调用execve(),因此*
不会扩展到匹配目录中的所有文件。如果您想进行shell扩展,则必须使用-exec
(或您选择的shell)向/bin/sh
提供,如下所示:
find /your/dir -name "cache" -type d -maxdepth 2 -print -exec sh -c "rm -f {}/*" \;