只删除linux目录中的文件而不是目录

新手上路,请多包涵

可以运行什么删除命令来仅删除给定目录中的文件

  • 不是目录
  • 不是子目录
  • 不是这些子目录中的文件。

有些文件没有扩展名,所以 rm *.* 不起作用…

此文件夹中有数千个文件。

有什么建议吗?

原文由 AndrewC 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 330
2 个回答

对我有用的是 PERL 脚本:

 perl -e 'chdir "subdirectory_name" or die; opendir D, "."; while ($n = readdir D) { unlink $n }'

从您要清理的目录向上运行这一层:将“subdirectory_name”替换为目录名称。

在不占用 CPU 的情况下处理数百万个文件。

原文由 AndrewC 发布,翻译遵循 CC BY-SA 3.0 许可协议

find PATH -maxdepth 1 -type f -delete

但这 不会提示您确认或输出刚刚删除的内容。因此最好先在没有 -delete 操作的情况下运行它,并检查它们是否是正确的文件。

原文由 James 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题