cmd如何重命名序列号和dirname

cmd如何重命名序列号和dirname

问题描述:

goodevening,我们不是英文的。
我们试试linux cmd重命名很多文件或目录。
exsample
time\1.ext test\newname.ext read\test.ext what\abc.ext

想听到结果。
time\01-time.ext test\02-test.ext read\03-read.ext what\04-what.ext
是序列号和dirname。

我们尝试了其他问题网站帖子。
但剂量结果。
find "$PWD" -name "[0-9][0-9].md" -exec bash -c ' DIR=$(dirname "{}" ); FILE=$(firename "{}" ); echo "{}" "$DIR"/"-${DIR##*/}".md ' \;
ls *.* | awk '{ printf "mv %s dirname-%03d.md\n", $0, NR }'

这个文件重命名如何使用CMD?
我们想要的结果是未命名的dile &目录。
png,txt,md,很多分机。
we tryed cmd“”“[0-9] [0-9]”是正则表达式。
cmd如何重命名序列号和dirname

+0

如果有超过100个文件,应该使用什么新名称?会不会有'01-time.ext'和'02-time.pdf'? – lit

+0

好吧,如果重命名超过100个文件的数量是。 在这种情况下,我们使用'[01]''中的'[001]'。 和目录内的混合extfiles。 您的权利,我们使用'01-time.ext和02-time.pdf和03-time.png'等 – follonel

我不知道你是否有要求使用awk或任何其他特定的命令。这是一个相当简单的方式来循环遍历文件并重命名它们。如果您确信将会发生正确的重命名,请从mv命令中删除echo

#!/bin/bash 
count=1 

for fn in $(find . -name "*.ext" -o -name "*.pdf" -o -name "*.png") 
do 
    filename=$(basename $fn) 
    extension="${filename##*.}" 
    dn=$(dirname $fn) 
    dp=$(basename $dn) 
    thiscount=$(printf "%03d" $count) 

    echo mv $fn $dn/$thiscount-$dp.$extension 

    count=$((count+1)) 
done 
+0

谢谢,我们尝试重新命名测试并在kde海豚中创建servicemenu。我们希望重命名成功。所以,很抱歉,解决方法是成功重命名后。后来。 – follonel

+0

对不起我们改变控制文件的方法。但谢谢你的帮助。 – follonel