我有一个直接调用/cache,其中有大约一百万个文件。
我重组了缓存系统,将缓存文件放入 /cache 目录内的不同文件夹中。新的缓存文件已写入这些子文件夹。因此,我想删除 /cache 目录中不在任何子文件夹中的所有文件。
我该如何在 SSH 中执行此操作?
答案1
您可以使用命令来执行此find
操作。
find /cache -maxdepth 1 -type f -exec rm -rf {} \;
find
我建议在执行之前先查看一下将被删除的文件列表-exec rm
:
find /cache -maxdepth 1 -type f
这将为您提供文件列表而不删除它们。再次强调;find
与 结合使用时-exec rm
请谨慎,我说得不够清楚 :)。
答案2
您想删除缓存文件夹中的所有文件,但不删除缓存文件夹中目录中的文件?如果是,您可以使用 find :find /cache -maxdepth 1 -type f -delete
-maxdepth 限制深度,不删除文件夹中的文件