我想知道,有没有办法检测cat功能完成合并文件,所以我可以压缩文件? 例如,如果我有这样的简单案例,具有多个文件的文件夹如下:
/var/www/testing/file1.iso0
/var/www/testing/file1.iso1
/var/www/testing/file1.iso2
/var/www/testing/file2.xls0
/var/www/testing/file2.xls1
基本上,使用我的网络应用程序,用户将上传file1.iso和file2.xls,并使用html5我将切片每个文件并将其部分上传,这将导致上述结构。在每个文件的所有部分完成上传后,我将使用ajax调用使用cat unix命令合并文件。
$command = '(files=(' . $list_file_copy . '); cat ' . '"${files[@]}" > ' . '"' . $file_name . '"' . '; rm ' . '"${files[@]}")';
像这样的事情。
exec($cmd . " > /dev/null &");
我的问题是我怎么知道file1.iso和file2.xls完成合并,所以我可以发送另一个命令来压缩文件?例如,在file1.iso和file2.xls中变为filexxx.zip。
请注意,文件可能是多个,每个文件都可能很大(我最多会说4GB,这就是为什么它会切成100MB到小部分)
答案 0 :(得分:0)
您可以尝试检查退出代码....... 当一个命令完成时,它会向OS返回一个成功/结果指示器或调用prog ....
在shell中测试$的值? (会给你执行最后一个命令的退出代码),如果成功,它将返回0作为退出代码 - 执行zip,否则抛出警告或错误。
我在很多脚本中都这样做。 希望这有帮助