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

Bash script for renaming files and moving into different folder

我在连接bash命令时遇到困难,这将允许我进入路径中的所有文件夹,将所有文件重命名为X_filename,其中X是文件夹计数(如果第一个文件夹,则为1,如果第二个为2等),filename是原始文件名。然后,我想将重命名的文件移到一个目录中,比如Desktop/dist

我能怎么做吗?

到目前为止,我写了这样的东西:

1
2
3
4
5
count=0
for i in *; do
    mv"${i}" ${count}_file.`echo"${i}" | awk -F. '{print $2}'`
    ((++count))
done

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


您可以通过使用一个计数器和一个for..in..do...done循环来实现这一点。

下面是一个例子:

1
2
3
4
5
6
7
8
9
10
11
#!/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