2011-07-23 45 views
0

我想编写一个循环访问目录并更改文件名以包含001_DTS(其中DTS是日期时间戳),002_DTS,003_DTS, etc如何循环访问目录并调整文件名

并删除aa,ab等,因为我想用这个分割函数(从该函数创建的文件)。

回答

2
prefix="x" # the default 'split' prefix, change to suit yourself 
count=1 
dts=$(date +%Y%m%d%H%M%S) 

for f in "$prefix"[a-z][a-z]; do 
    mv "$f" "$(printf "%s%03d_%s" "$prefix" $count $dts)" 
    ((count++)) 
done 
+0

非常感谢!我认为'x'前缀是我认为文件名前缀是什么的?再次感谢 – Justin

-2

第一,运行bash的:-),然后解决它:

bash # :-) 
J=1 
for I in * ; do 
    mv -i $I `printf '%03d' $J`_DTS 
    J=$((J+1)) 
done 
+0

ksh爱好者不会downvote我的回答:) – TMS

0

这个怎么样,而不是特定的壳(KSH/bash)的

cd /path/to/dir 
for file in * 
do 
    mv $file ${file}_$(date +%Y%m%d%H%M%S) && echo "file moved" || echo "unable to move" 
done 

如果你想在循环之前修改DTS的值只需像其他帖子一样分配变量。

相关问题