numeric

perl -e 'rename$_,sprintf("%03d.pdf",++$a)for@ARGV' *.pdf

这个用来把文件夹里面pdf的文件全部改名为数字名称。

另外,也可以哦嗯perl-rename加sprintf功能

perl-rename -n 's/.*/sprintf"%04d",$i++/e' *.pdf

Linux本身自带的rename非常好用,而且支持部分perl语言,但好像不支持printf,遇到数字比较麻烦,但空格 和字母则ok,如下:

kk@debian:/tmp/test$ touch 23423\ 234afadf\ \ \ 234.sdf
kk@debian:/tmp/test$ rename -n 's/\d+ //; s/\s+/_/g' *
23423 234afadf   234.sdf renamed as 234afadf_234.sdf

需要将2.jpg,22.jpg,222.jpg变为002.jpg, 022.jpg, 222.jpg的方法:

perl-rename  's/$_/sprintf"%07s",$_/e' *

另外需要222.jpg改名为22200000.jpg这样的需求

ls |perl -pe 'while(length$_<20){s/(?=\.[^.]+$|$)/0/}'

subfolder prefix

http://bpaste.net/show/244959/

find -maxdepth 2 -type f -print0  | xargs -r0n1 | perl-rename -n 's#\b/##'
find . -type f | sed -r 's@([^/])/([^/]+)/(.*)@mv & \1/\2\3@'
find -maxdepth 2 -type f |perl -lne '$file=$_;s/\b\///g;rename $file,$_'