如何删除当前目录中的所有文件但保留子文件夹中的文件

如何删除当前目录中的所有文件但保留子文件夹中的文件

我有这样的结构

  • 文件_1
  • 文件_2 ...
  • 文件_n
  • 文件夹1/
    • 子文件1
    • 子文件2

我只想删除 file_1、file_2 和 file_n 但保留其中的所有文件夹和文件。

答案1

赶紧跑:

rm *

就这么简单。除非你添加 -R 或 -r 标志,否则它不会触及目录:

rm -r *

如果您还想删除空目录,请添加 --dir 标志:

rm --dir *

答案2

rm没有-r,禁用递归目录删除标志和 shell 通配符:

rm /path/to/dir/*

-f如果您不想被提示,请添加。

您还可以使用find

find /path/to/dir -maxdepth 1 -type f -exec rm -rf '{}' \;

其工作原理是因为 amaxdepth为 1,因此只选择顶层文件。

相关内容