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
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 }'
答案 0 :(得分:0)
我不知道您是否需要使用awk
或任何其他特定命令。这是循环文件并重命名它们的一种相当简单的方法。如果您确信将进行正确的重命名,请从echo
命令中删除mv
。
#!/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