Мне было интересно, есть ли способ обнаружить завершение функции кошки, слияние файла, чтобы я мог заархивировать файлы? , например, если у меня есть простой случай, как это, папка с несколькими файлами, как это:Есть ли все-таки, чтобы обнаружить команду unix для команды «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 в небольшой части)
'cat foo >> bar && baz' -' && 'ждет, пока предыдущая команда закончит, прежде чем запускать следующую. Я не уверен, есть ли более сложный способ? – Emissary
@ Emissary, но в то же время я не хочу, чтобы пользователь, загрузивший файл, ожидал, что файл завершит слияние и zip. Он должен работать в фоновом режиме, поэтому после того, как часть файла выполнит загрузку и придет на сервер, пользователь может выйти из системы или сделать что-либо еще. вместо ожидания слияния и zip – Harts
Возможно, вы используете какое-то соглашение об именах в объединенном файле, а затем команду cron периодически проверяете файлы, соответствующие указанному имени/шаблону, и запишите их. Достаточно уверен, что объединенная заявка не будет записана в файловую систему до тех пор, пока команда cat не завершится. – Emissary