2.13 批量重命名和移动

《Linux Shell 脚本攻略(第 2 版)》读书笔记

用特定的格式重命名当前目录下的图像文件,最简单的方法是使用下面的脚本:

#!/bin/bash
#文件名:rename.sh
#用途:重命名 .jpg 和 .png 文件

count=1
for img in $(find . -iname '*.png' -o -iname '*.jpg' -type f -maxdepth 1); do
  new=image-$count.${img##*.}

  echo "Renaming $img to $new"
  mv "$img" "$new"
  let count++
done

输出如下:

$ bash rename.sh
Renaming ./hack.jpg to image-1.jpg
Renaming ./new.jpg to image-2.jpg
Renaming ./next.png to image-3.png

其他执行重命名操作的方法

  • *.JPG 更名为 *.jpg
rename *.JPG *.jpg
  • 将文件名中的空格替换成字符“_”,包括文件夹
rename 's/ /_/g' *
# 's/ /_/g' 用于替换文件名
# * 用于匹配目标文件的通配符
  • 转换文件名的大小写
rename 'y/A-Z/a-z/' *  #大写转小写
rename 'y/a-z/A-Z/' *  #小写转大写
  • 将所有的 .mp3 文件移入给定的目录
find . -type f -name "*.mp3" -exec mv {} target_dir \;
  • 将所有文件名中的空格替换为字符“_”
find . -type f -exec rename 's/ /_/g' {} \;

你可能感兴趣的:(2.13 批量重命名和移动)