我发现了大多数此类问题,其中名称的更改对于该目录中的整个文件集是相同的。 但我在这里提出的情况是为该目录中的每个文件指定一个不同的名称,或者只是添加一个不同的前缀。
例如,我在一个目录中有大约200个文件,它们都在文件名中包含数字。我想要做的是为每个文件添加1到200的前缀。比如1_xxxxxxxx.png,2_xxxxxxxx.png ........... 200_xxxxxxxx.png
我正在尝试这个,但它并不是每次都增加我的$ i,而是为每个文件提供1_的前缀。
echo "renaming files"
i=1 #initializing
j=ls -1 | wc -l #Count number of files in that dir
while [ "$i" -lt "$j" ] #looping
do
for FILE in * ; do NEWFILE=`echo $i_$FILE`; #swapping the file with variable $i
mv $FILE $NEWFILE #doing the actual rename
i=`expr $i+1` #increment $i
done
感谢您的任何建议/帮助。
答案 0 :(得分:1)
要使用expr
增加,你肯定需要空格(expr $i + 1
),但你可能会做得更好:
echo "renaming files"
i=1
for FILE in * ; do
mv $FILE $((i++))_$FILE
done
答案 1 :(得分:1)
i=1
for f in *; do
mv -- "$f" "${i}_$f"
i=$(($i + 1))
done