bash on Linux,删除具有特定文件扩展名的文件

时间:2013-05-21 08:12:38

标签: linux bash file delete-file

我想在文件夹及其子文件夹中删除具有特定扩展名的所有文件 - " .fal ",但名为" * Original的文件除外。 FAL&#34 ;.问题是我想删除具有相同扩展名的其他文件:

  • * Original.fal.ds
  • * Original.fal.ds.erg
  • * Original.fal.ds.erg.neu

还有其他" .fal " s我也想要删除,没有"原创"在他们中。 名称一直在变化,因此我无法删除特定名称。 * Original.fal并没有变化。

我只能到达这里:

$find /disk_2/people/z183464/DOE-Wellen -name "*.fal" \! -name "*Original.fal" -type f -exec echo rm {} \;

如果命令只能在已被调用(执行)的文件夹(及其子文件夹)中删除,那将会很棒

当我运行代码时,它给了我一个错误:

  1. / disk_2 / people / z183464 / DOE-Wellen:是一个目录

2 个答案:

答案 0 :(得分:3)

如果您不希望find潜水过深,可以使用-maxdepth限制它。

答案 1 :(得分:0)

你可以使用一个简单的for循环。此命令显示您可能要删除的所有文件。用rm更改echo以删除它们。

cd /disk_2/people/z183464/DOE-Wellen && for I in `find . -name "*.fal" ! -name "*Original.fal"`; do echo $I; done

使用“find ... | grep ...”,如果您需要更多灵活性,也可以使用正则表达式。

相关问题