递归删除子目录中的文件和文件夹

Sil*_*cer 5 shell shared-folders delete

有一个文件夹,“传输”。在该传输文件夹中有用户文件夹“user1”、“user2”等。我想(定期)删除内容(即用户文件夹中的所有文件和文件夹),但我不想删除“传输”或用户文件夹。

每次添加新用户时,如何使用 shell 脚本/命令来做到这一点,而无需手动为每个新用户文件夹添加调用?

mrc*_*_kr 17

您可以使用以下find命令执行此操作:

find /path/to/transfer -mindepth 2 -delete
Run Code Online (Sandbox Code Playgroud)

-mindepth 2参数告诉find忽略前两级目录:搜索目录本身,以及直接在其中的所有文件和文件夹。

-delete参数只是简单地告诉find删除所有文件。

您可以随时-mtime根据需要添加更多参数(例如)。

  • +1 提及`-mtime`。我不会定期删除这种目录结构下的 _all_ 文件。我只会删除超过一定时间的文件,以避免取出某人刚刚放在那里但尚未完成传输到最终目的地的文件。 (3认同)