查找和删除文件夹及其子文件夹中所有不带扩展名的文件


16

我有一个约500个子目录的文件夹。里面有很多垃圾,我想清理。

我已经使用以下命令删除了某些不需要的文件类型,例如图像:

find . -mindepth 1 -iname "*.jpg" -type f -delete

但是,我现在要删除所有无扩展名的文件。类似于“购物清单.txt”的“购物清单”文件

我已经尝试了以下命令,但没有成功:

find . -mindepth 1 ! -iname "*.*" -type f -delete

Answers:


20

尝试这个:

find . -type f  ! -name "*.*"  -delete

但是,请注意,上述操作不会删除名称以结尾的文件.,例如foo.。要同时删除它们,请改用此方法:

find . -type f  ! -name "*.?*" -delete

第二个命令是我的下一个问题。非常感谢!我还可以键入find . -type f ! -name "*?.*" -delete删除“ .trash”之类的文件或不需要的文件。不用担心-这不是我的主目录,所以我没有丢失任何配置文件。
etsnyman

5
@etsnyman最好先测试不带-delete选项的命令!
RaduRădeanu2014年

@etsnyman不太清楚,要删除以点开头的文件,请find . -type f -name ".*" -delete在最后一个注释中使用该文件名也将删除不带扩展名的文件。拉杜说了什么!首先测试!
2014年

@RaduRădeanu我实际上首先在带有空文件的虚拟目录上对其进行了测试……
etsnyman 2014年

@terdon问号在您的第二个命令中是什么意思?
Avinash Raj

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.