在shell中重命名多个文件
我在目录中有3个文件
abc.tar.gz
abc2.tar.gz
abc3.tar.gz
使用此命令:
rename abc abc.part abc*.tar.gz
将它们转换为
abc.part.tar.gz
abc.part2.tar.gz
abc.part3.tar.gz
之后我又添加了3个文件..
abc.tar.gz
abc2.tar.gz
abc3.tar.gz
当我解雇时重命名为abc abc.part abc * .tar.gz
它将重命名所有6个文件,因此最终输出为
abc.part.tar.gz
abc.part.part2.tar.gz
abc.part.part3.tar.gz
abc.part.part.tar.gz
abc.part2.tar.gz
abc.part3.tar.gz
我只想防止多次重命名......我的rename
命令应该是什么?
意味着我的最终输出应该低于,无论我多长时间重命名命令。
这里的文件数量是DYNAMIC
..可能是3,4 ...或者其他...所以不能静态添加3或某些数字!!
abc.part.tar.gz
abc.part2.tar.gz
abc.part3.tar.gz
答案 0 :(得分:1)
作为重命名的最后一个参数,请使用:
abc{,2,3}.tar.gz
答案 1 :(得分:0)
创建以下“ChangeExt”脚本:
#!/bin/bash
if [ $# -lt 2 ]; then
echo "$0 NEWEXT FILENAME.."
exit 1
fi
$newext=$1
shift
for a in $*
do
mv $a "`basename $a`.$newext"
echo "$a to `basename $a`.$newext"
done