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

Tan*_*ser 3 directory bash subdirectory delete-file

我没有成功搜索删除工作目录中除了子目录之外的所有文件的解决方案.

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

IKa*_*agh 9

find . -maxdepth 1 -type f -print0 | xargs -0 rm
Run Code Online (Sandbox Code Playgroud)

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

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

@ chepner推荐以上的改进,简单地使用

find . -maxdepth 1 -type f -delete
Run Code Online (Sandbox Code Playgroud)

不知道为什么我没有想到它,但无论如何.

  • `找到。-maxdepth 1 -type f -delete` >> 完美。谢谢你! (2认同)

Mat*_*ski 5

我认为这很简单:

$ rm *
Run Code Online (Sandbox Code Playgroud)

在工作目录中时。

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

请记住,如果您还想删除隐藏文件,那么您需要:

$ rm * .*
Run Code Online (Sandbox Code Playgroud)