批量重命名和移动
重命名多个文件是我们经常会碰到的一项工作。举个简单的例子,当你把照片从数码相机传 输到你的计算机之后,你可能会删除其中某些不如意的部分,这会使图像文件的编号变得不再连 续。你会想使用特定的前缀和连续的数字对它们进行重命名。我们当然可以借助第三方软件执行 这类重命名操作,但是也可以使用Bash命令在短短几秒钟之内完成同样的活儿。
另一件经常要做的工作是,将文件名中包含某个特定部分(例如相同的前缀)或者具有特定 类型的所有文件移动到指定的文件夹中。让我们看看如何用脚本来执行这些操作。
用特定的格式重命名当前目录下的图像文件,最简单的方法是使用下面的脚本:
#!/bin/bash
#文件名: rename.sh
#用途: 重命名 .jpg 和 .png 文件
count=1;
for img in `find . -maxdepth 1 -type f -iname '*.png' -o -iname '*.jpg'`
do
new=image-$count.${img##*.}
echo "Renaming $img to $new"
mv "$img" "$new"
let count++
done
该脚本将当前目录下所有的.jpg和.png文件重命名,新文件名的格式为image-1.jpg、 image-2.jpg、image-3.jpg、image-4.png等,依次类推。