如何删除目录以外的所有文件?

时间:2015-08-12 12:55:02

标签: bash directory delete-file subdirectory

我搜索失败的解决方案是删除工作目录中的所有文件,除了里面的子目录。

我找到了一种方法来删除所有目录中的所有文件,但我正在寻找一种方法来只删除同一"级别的文件"我在。

2 个答案:

答案 0 :(得分:7)

find . -maxdepth 1 -type f -print0 | xargs -0 rm

find命令以递归方式在目录中搜索与指定表达式匹配的文件和文件夹。

  • -maxdepth 1仅搜索当前级别(与.一起使用时或使用目录时的顶级级别),有效转换递归搜索功能
  • -type f仅指定文件和所有文件

@ chepner建议对上述内容进行改进,以便使用

find . -maxdepth 1 -type f -delete

不知道为什么我从一开始就没想到它,但无论如何。

答案 1 :(得分:2)

我认为这很容易:

$ rm *

在工作目录内。

我已对其进行了测试并且确实有效 - 它删除了工作目录中的所有文件,并没有影响任何子目录中的任何文件。