2013-12-09 110 views

回答

3

你可以尝试

i=1; for f in Screen*.png; do mv "$f" "$i.png" ; i=$((i + 1)); done 

或相同的脚本

#!/bin/bash 

i=1 
for f in Screen*.png 
do 
    mv "$f" "$i.png" 
    i=$((i + 1)) 
done 
1

使用(perl的)rename命令:

rename 's/.*\.png/sprintf("file-%04d.png",$=++-59)/e' Screen*png 

而对于keepind时间顺序:

rename 's/.*\.png/sprintf("file-%04d.png",$=++-59)/e' $(/bin/ls -1tr Screen*png) 

说明:

rename是安装在与碱的Un * X系统的脚本。

在perl中,$=保存当前页面的长度(默认为60)。虽然没有打印。这个变量是,你想;-)

+0

可能被用于任何整型变量这是一个* *绝招:'$ ='持有*纸张长度行*。在我的系统上,'perl -e'打印“$ = \ n”;''给'60'。这就是我的命令行中'-60'的原因。 –

+0

我认为这也可以在MacOS下工作。反馈欢迎! –

+0

它看起来像个不错的主意:)我会做一些测试! – fthiella

-1

转到您的文件夹

TEMP=$(ls) 
j=1 
i=$(ls | wc -l) 
for c in $TEMP; do mv $c $(i-j).png ; done; 
+0

不能用作bash脚本。请你重新检查一下。 –