我有一项工作要为具有不同名称的60000+(30.3 GB)文件制作新的硬链接。问题是,目录,旧文件名和新的硬链接名称存储在CSV文件中。现在,我正在编写一个自动执行的脚本(解析csv,循环记录,并建立链接)。以下是剧本中的预告
while read col1 col2 col3 col4
do
if [ $counter -ne 0 ];
then
if [ ! -f "$col2$col3.jpg" ]; then
# File not found, need to track how much is not found
echo "$col2$col3.jpg"
notfound=$(expr $notfound + 1)
else
if [ $(expr $hash / 10) -eq 1 ]; then
hash=$(expr $hash - 10)
fi
ln "$col2$col3.jpg" ./testtemp-1/$hash/$col4.jpg
hash=$(expr $hash + 1)
fi
else
counter=$(expr $counter + 1)
fi
done < test.csv
完成这件事需要大约15分钟。我是否知道是否有任何缩短时间的想法?这是一项非常时间敏感的任务,将在生产中完成(现在正在进行测试)。
PS:我需要散列,因此无法删除。找不到也是必需的。 $ col2 - &gt;目录名称,$ col3 - &gt;文件名,$ col4 - &gt;新的硬链接名称
答案 0 :(得分:0)
我设法通过更改expr并跳过第一行检查逻辑将时间减少到非常合理的时间(2分钟)。感谢您的评论:)