#此方法适用于系统没有安装prename的时候
#centos8.4自定义prename成功,将如下的prename设置在/usr/local/bin目录下
sudo tee /usr/local/bin/prename << 'EOF'
#!/usr/bin/perl
use strict;
use warnings;
# 检查参数数量
if (@ARGV < 2) {
die "Usage: prename 's/pattern/replacement/' file(s)\n";
}
my $expr = shift;
my $count = 0;
# 确认文件存在
@ARGV = grep {-e $_ or print "Warning: $_ does not exist\n"} @ARGV;
foreach my $file (@ARGV) {
my $oldname = $file;
my $newname = $file;
# 应用替换模式
eval "\$newname =~ $expr";
if ($@) {
warn "Error in pattern: $@\n";
next;
}
# 如果文件名已经更改
if ($oldname ne $newname) {
if (rename($oldname, $newname)) {
print "Renamed: $oldname -> $newname\n";
$count++;
} else {
warn "Failed to rename $oldname to $newname: $!\n";
}
} else {
print "No change needed for: $oldname\n";
}
}
print "Total files renamed: $count\n";
EOF
sudo chmod +x /usr/local/bin/prename
#改变属性
sudo chown train:train prename
#可以愉快的在用户或者root下使用prename了(支持perl正则)