在 Linux 中,如何删除目录中的所有文件(但不删除子文件夹或其内容)?

在 Linux 中,如何删除目录中的所有文件(但不删除子文件夹或其内容)?

我有一个直接调用/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 限制深度,不删除文件夹中的文件

相关内容