我有一个包含大约100个子文件夹的文件夹。在每个子文件夹中,有4个文本文件和1个或2个包含图像的文件夹,4个当前空文件夹对应于4个文本文件。在每个文本文件中,都有一个需要从图像文件夹移动到特定文件夹的图像列表。
以下是插图:
/Textures/Asymmetrical/ contains
/Asymmetrical/
/Asymmetrical+Texture/
/1/ /2/ /3/ /4/
/1.txt /2.txt /3.txt /4.txt
在1.txt中,有一个文件列表需要来自/纹理/不对称/不对称/或/纹理/不对称/不对称+纹理/进/纹理/不对称/ 1 /等等。
但并非所有文件夹都采用这种格式 - 下面还有另一种类型:
/Textures/Zigzagged/ contains
/images/
/1/ /2/ /3/ /4/
/1.txt /2.txt /3.txt /4.txt
这些文件/文件夹的目的应该从上面开始,除了这个更简单,因为它只有1个图像文件夹。
现在我在shell中编写了以下代码:
filename='1.txt' #I was going to do the text files one at a time..
#Hidden: I set the value of filename2 to another text file.
while read f;
do
while read g;
do
cp ./$f""/images/$g $f""/2_Good/
cp ./$f""/$f/$g $f""/2_Good/
cp ./$f""/$f""+texture/$g $f""/2_Good/
done < $f""/$filename
done < $filename2
现在这确实有效,但是它会产生很多错误,因为有些文件夹确实有图像子文件夹而有些文件没有等等。但我完全可以接受这一点。更大的问题是程序会在一段时间后放弃,也许是在复制了大约40-200张图像之后。我有成千上万的图像要移动,所以我不能打算用这么大的块进行复制。我收到的错误如下:
8 [main] -bash 5796 fork:child -1 - forked process 5764 died unexpectedly, retry 0, exit code -1073741819, errno 11
./moveAround.sh: fork: retry: Resource temporarily unavailable
./moveAround.sh: fork: Resource temporarily unavailable
所以我想我要求1)修复我的代码或2)这个问题的一般解决方案可以在很少的监督下工作。