我在连接bash命令时遇到困难,这将允许我进入路径中的所有文件夹,将所有文件重命名为X_filename
,其中X
是文件夹计数(如果第一个文件夹然后是1,如果是第二个,等等),filename
是原始文件名。然后,我想将重命名的文件移动到一个目录中,让我们说Desktop/dist
。
关于我如何做到这一点的任何想法?
到目前为止,我写了类似的东西:
count=0
for i in *; do
mv "${i}" ${count}_file.`echo "${i}" | awk -F. '{print $2}'`
((++count))
done
但是,这只会更改文件夹中的所有文件 - 它不会将它们移动到我想要的文件夹中。
答案 0 :(得分:0)
您可以使用计数器和for..in..do...done
循环来实现此目的。
以下是一个例子:
#!/bin/bash
FILES=./files/*
TARGET=~/Desktop/dist # make sure that folder exists!
COUNTER=1 # if you want to start from 0, just put 0 there
for f in $FILES
do
echo "Processing $f file..."
mv $f $TARGET/$COUNTER"_"${f##*/}
let "COUNTER++"
done