File 重命名多个文件删除括号以及括号中的所有内容

File 重命名多个文件删除括号以及括号中的所有内容,file,debian,rename,File,Debian,Rename,我正在寻找一种方法来重命名具有不同扩展名的多个文件,删除括号之间的所有内容 范例 foo(foo bar).bar > foo.bar foo/bar/foo(foo bar).bar > foo/foo.bar foo/bar/foo(foo bar).bar > foo/bar/foo.bar 我是从另一个问题得出这个结论的: rename -v 's/ \(.*\)\./\./' ./*.* 但我不认为重命名是我需要的。我读了这个人,但它似乎没有递归标志。是否有更简单

我正在寻找一种方法来重命名具有不同扩展名的多个文件,删除括号之间的所有内容

范例

foo(foo bar).bar > foo.bar
foo/bar/foo(foo bar).bar > foo/foo.bar
foo/bar/foo(foo bar).bar > foo/bar/foo.bar
我是从另一个问题得出这个结论的:

rename -v 's/ \(.*\)\./\./' ./*.*

但我不认为重命名是我需要的。我读了这个人,但它似乎没有递归标志。是否有更简单的方法来执行此操作。

您可以将提供的命令与查找的命令组合起来,以递归方式查找文件:

find . -type f -exec rename -v 's/\(.*\)\./\./' {} \;

这个问题可能更适合我。无论如何,我猜by-r标志意味着递归到子目录中。还要注意的是,模式与示例不匹配,因为它在括号前有一个空格。谢谢,这似乎有效。我相信我原来的字符串在扩展名之前留下了一个空白,但我找到了删除它的方法。再次感谢。