如何只删除目录的内容?

Iro*_*oeN 14 shell files

我在一个文件夹中:/var/myfolder.

里面还有一些其他文件夹,如:/var/myfolder/A/ /var/myfolder/B/ `/var/myfolder/C/等。

每个里面都有一些随机名称的文件。如何从里面的所有文件夹中删除所有文件/var/myfolder

结构(内部的所有目录,例如 A、B、C 等/var/myfolder)应保持完整。

Sta*_*mer 18

尝试:

find /var/myfolder -type f -delete
Run Code Online (Sandbox Code Playgroud)

这将获取 /var/myfolder 下的所有常规文件并删除它们,只留下目录。

  • `-type f` != `! -类型d` (6认同)
  • 我想出了以下解决方案: find /var/myfolder -type f -exec rm -f {} \; (2认同)
  • 对不起。我使用 Debian 或 Ubuntu。据我所知,您的解决方案是等效的。 (2认同)

Gil*_*il' 7

使用 zsh,使用. glob 限定符仅匹配常规文件:

rm -- **/*(.)
Run Code Online (Sandbox Code Playgroud)

这将递归删除当前目录及其子目录中的所有(非隐藏)常规文件。添加Dglob 限定符以删除隐藏的常规文件(以及隐藏目录中的常规文件)。