![在 Linux 中,如何删除目录中的所有文件(但不删除子文件夹或其内容)?](https://linux22.com/image/514686/%E5%9C%A8%20Linux%20%E4%B8%AD%EF%BC%8C%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%EF%BC%88%E4%BD%86%E4%B8%8D%E5%88%A0%E9%99%A4%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%E6%88%96%E5%85%B6%E5%86%85%E5%AE%B9%EF%BC%89%EF%BC%9F.png)
我有一个直接调用/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 限制深度,不删除文件夹中的文件