Bash - 从数据库值递归重命名文件

时间:2017-12-30 06:04:47

标签: linux bash shell recursion

我对Linux很陌生。

我有一个文件夹,其中包含大约1000个文件,并且该文件名存储在数据库中。

我想要做的是使用同一数据库中的另一个值递归重命名所有这些。

我的数据库结构

oldVal      | newVal
oldFileName | newFileName

最简短,最有效的方法是什么?

提前感谢您的提示。

1 个答案:

答案 0 :(得分:1)

可以将数据库信息导出到文本文件吗?如果是,对于MySQL数据库,您可以试试这个。

首先,在MySQL中执行此查询......

SELECT field1,field2
FROM table
INTO OUTFILE '/your/path/with/files/to/rename/export.txt'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

之后,转到 / your / path / with / files / to / rename / 文件夹并粘贴此内容...

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
LIST=`cat /your/path/with/files/to/rename/export.txt`
for i in $LIST ;
do
 field1=`echo $i | cut -d',' -f1`
 field2=`echo $i | cut -d',' -f2`
 \mv "./"$field1 "./"$field2
done
IFS=$SAVEIFS
相关问题