首先介绍一下故事背景:
我们在服务器上有一个文件夹,保存了所有上传的文件,并且文件名是经过Hash过的。文件归类信息完全保存在有一个MYSQL数据表中。现在的需求是把某一个类型的文件全部拷贝出来。
因此,我们先从数据库中导出了一份文件列表,格式如下:
./data/fec84d1279a448c4a0532783069bfb42.xml
./data/fccfd134cff44fec834b3e2d632ffcf7.xml
./data/fbf539d9eece45d29c689008ad946326.xml
./data/fba16daecfb2439f9243fa2904b0b312.xml
...
...
...
根据这个文件列表,我们写了一个bash shell脚本,把对应的文件全部拷贝到另外一个文件夹test中做后续处理。以下是该bash shell脚本的示例代码:
#!/bin/bash
# read from config file
hostConfig="./filelist.txt"
echo "Read config from $hostConfig"
files=()
while read -r line
do
if ! [[ $line =~ ^# ]]
then
files+=($line)
fi
done < "$hostConfig"
for h in "${!files[@]}"
do
echo "Copy file ${files[h]}"
cp ${files[h]} ./test/
done