有没有办法检测unix命令"cat"完成合并文件


Is there anyway to detect unix command "cat" finish merging files?

我想知道,有没有办法检测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
基本上,使用我的web应用程序,用户将上传file1。使用html5,我将切片每个文件并上传它的一部分,这将导致上述结构。在每个文件的所有部分上传完成后,我将使用cat unix命令使用ajax调用合并文件。
$command = '(files=(' . $list_file_copy . '); cat ' . '"${files[@]}" > ' . '"' . $file_name . '"' . '; rm ' . '"${files[@]}")';

像这样。

exec($cmd . " > /dev/null &");

我的问题是我怎么知道这个文件?iso和file2.xls完成合并,所以我可以发送另一个命令来压缩文件。如文件1所示。例如,Iso和filexxx.zip变成filexxx.zip。

请注意,文件可以是多个,每个单独的文件可以很大(我说最多4GB,这就是为什么它将100MB切片为一小部分的原因)

您可以尝试检查退出代码.......当命令完成时,它确实会向操作系统或调用prog....返回一个成功/失败指示符

在shell测试$?(会给你最后执行的命令的退出代码),如果成功,它将返回0作为退出代码-执行压缩,否则抛出一个警告或错误。

我在很多脚本中都这样做。希望对大家有所帮助