批量重命名或移动文件

  1. 利用 find 命令和 mv 命令,编写简单脚本
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
# 重命名文件

count=1
for img in `find . -maxdepth 1 -type f -iname "*.jpg" -o -iname "*.jpeg"`
do
picName=image-$count.${img##*.}
echo "rename $img to $picName"
mv $img $picName
((count++))
done
  1. 利用 rename 命令
1
2
3
4
5
# reanme 利用了 perl 的正则表达式来进行替换 substitute
rename ‘s/\.jpg$/.jpeg/’ *.jpg

# 文件名大小变小写
rename 'y/A-Z/a-z/' *
  1. find 结合 rename 实现递归重命名
1
find -type f -exec rename 's/-/_/' {} \;
  1. 清理工作