unix:发生错误时继续cp?

时间:2012-06-13 20:53:05

标签: unix cygwin cp

我有一个包含大约50,000张.jpg图像的目录。 我们将此目录称为“imageDir”,并将我正在尝试复制的空目录称为“outputDir”。

执行时:

cp imageDir/* outputDir/
通过我得到了大约3万张图像:

cp: cannot open `imageDir/234235.jpg' for reading: Bad address

(这并不总是出现在同一个文件中)然后复制操作将停止而不复制其余文件。 我在尝试添加-R选项后,即使发生错误也会继续复制:

cp -R imageDir/* outputDir/

但这没有解决我的问题。

您一次可以成功复制的文件数量是否有某种限制? 为什么我会看到此错误,如何解决? (如果这里和那里的照片都发生了,只要它完成剩下的就可以了!)

此外:这是在Windows 7上使用Cygwin。 谢谢!

1 个答案:

答案 0 :(得分:2)

看起来像Cygwin给我的问题。既然你说它是随机发生的,你可能只想在它发生时再试一次。这是一个可以执行此操作的脚本(未经测试):

#!/bin/sh
for i in imageDir/*
do
  cp $i outputDir/
  while [ $? -ne 0 ]
  do
    cp $i outputDir/
  done
done