用于重命名文件和移动到不同文件夹的Bash脚本

时间:2016-04-02 16:26:42

标签: bash

我在连接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

但是,这只会更改文件夹中的所有文件 - 它不会将它们移动到我想要的文件夹中。

1 个答案:

答案 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