2016-09-13 130 views
1

当我制作乳胶文档时,会创建具有相同基本名称但扩展名不同的多个文件。 如果我想重命名原始文件,我还必须重命名文件夹中的每个其他文件。重命名所有具有相同基本名称的文件

有没有办法做到以下几点?

mv file_basename.* file_newname.[whatever was globbed] 

回答

1

让我们考虑与这些文件的目录:

$ ls 
file_basename.a file_basename.b file_basename.c 

现在,让我们请运行perl rename实用程序来重命名文件:

$ prename 's/file_basename/file_newname/' * 
$ ls 
file_newname.a file_newname.b file_newname.c 

正如你可以看到所有的文件有新的名字。

prename,有时也叫rename,是perl包的一部分。

请注意,某些Linux发行版默认安装了不同且不兼容的版本。如果您有其中之一,上述命令将不起作用。有关哪些发行版附带prename或如何将其安装到您的发行版的更多信息,请参阅here

0

这里有一个简单的bash脚本,它是(我们称之为rename-prefix):

#!/bin/bash 

basename="$1" 
newname="$2" 
for file in "$basename"*; do 
    mv -iv -- "$file" "$newname${file#$basename}" 
done 

它必须从文件所在的目录执行。你这样运行:

rename-prefix file_basename. file_newname. 
相关问题