Mat*_*hen 13
如果我理解正确,你有例如image_001.jpg,image_003.jpg,image_005.jpg,你想重命名为image_001.jpg,image_002.jpg,image_003.jpg.
编辑:这被修改为将临时文件放在当前目录中.正如Stephan202所指出的,如果temp在不同的文件系统上,这可能会产生显着的差异.为了避免在循环中访问临时文件,它现在通过图像*
i=1; temp=$(mktemp -p .); for file in image*
do
mv "$file" $temp;
mv $temp $(printf "image_%0.3d.jpg" $i)
i=$((i + 1))
done
Run Code Online (Sandbox Code Playgroud)
一个简单的循环(测试echo
,执行mv
):
I=1
for F in *; do
echo "$F" `printf image_%03d.jpg $I`
#mv "$F" `printf image_%03d.jpg $I` 2>/dev/null || true
I=$((I + 1))
done
Run Code Online (Sandbox Code Playgroud)
(我添加2>/dev/null || true
了禁止有关相同源文件和目标文件的警告.如果这不符合您的喜好,请参阅Matthew Flaschen的回答.)
归档时间: |
|
查看次数: |
25664 次 |
最近记录: |