有没有办法在Linux中更改分布在批量目录中的批量文件的文件类型?

时间:2018-03-19 19:04:16

标签: linux rename bulk

我正在尝试运行一个查看一组文件夹的程序,并在其中找到一种文件。文件的格式是这个

MAIN

  

SUBDIR01

     
    

FILE01.TXT

         

FILE02.TXT

  
     

SUBDIR02

     
    

FILE03.TXT

         

FILE04.TXT

  

问题是程序运行的文件和目录很多。并且,在编写时,程序会搜索.txt文件。区分大小写,它没有找到。我的简单解决方法是重新编写程序以搜索.TXT并解决问题。我还发现,如果我位于包含文件的目录中,则可以使用“rename”和“mv”批量重命名文件。但是,还没有找到一种让我进入MAIN目录并让批量更改通过一组文件夹的方法。

我发现最接近的是找到。 -name“* .TXT”将打印出所有这些。

我觉得我非常接近,所以我想知道是否有人可能会知道这个问题的解决方案。不使用上述工作。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用find找到文件并打印名称,然后将xargsrename结合使用以进行实际重命名。为避免文件和目录名称包含空格的问题,您应使用-print0而不是-print来查找并添加-0' to the xargs`命令行。请参阅下面的示例。

find . -name '*.TXT' -print0 | xargs -0 rename 's/.TXT/.other/'