Вопрос или проблема
Команда, подобная inotifywait -mq -e moved_to ....
, хорошо работает для обработки перемещенных файлов. Она не работает, когда я пытаюсь сохранить файл из OOO, чтобы он был перемещен в целевую директорию. Поэтому я изменил аргумент действия (-e) с “moved_to” на “modified”. Но тогда OOO жалуется, что сохраненный файл не может быть найден.
Есть ли способ сделать так, чтобы inotifywait корректно обрабатывал процедуру сохранения OOO?
С уважением, Вольф
Я предполагаю, что OOO относится к OpenOffice.Org. Обычно, если вы сохраняете файл из приложения, обновляемый файл не изменяется. Вместо этого создается новый файл, а затем этот файл заменяет существующий. Это предотвращает повреждение файлов, если электричество отключится или приложение завершит работу с ошибкой во время записи данных. Вам нужно inotifywait на директорию и проверить, что файл записывается.
Если этот ответ совершенно не по теме, пожалуйста, уточните ваш вопрос, так как, как другие выразились в комментариях, такие термины, как “перемещенный”, в этом контексте не используются. Укажите, что вы пытаетесь сделать, какие команды вы выполняете и когда, затем что вы делаете с OOO, и что вы хотите видеть в результате. Также укажите сообщение об ошибке, которое вы получаете от OOO, так как это не имеет смысла с учетом предоставленной информации.
.
Ответ или решение
Вопрос о том, как правильно использовать inotifywait
для мониторинга сохранения файлов из OpenOffice.org (OOO), требует детального понимания процесса сохранения файлов в таких приложениях. Частая проблема заключается в том, что при сохранении файла создается временный файл, который затем перемещается в место назначения. Это может вызывать осложнения при использовании inotifywait
, особенно если применяется событие moved_to
или же modified
.
Теория
В контексте OpenOffice.org сохранение файла обычно происходит в несколько этапов. При нажатии кнопки "Сохранить", приложение сначала создает временный файл. Этот файл содержит обновления, внесенные пользователем. После успешного сохранения во временный файл, старый файл удаляется, и временный файл перемещается на его место. Таким образом, событие moved_to
не будет срабатывать, если мы мониторим только сам файл или конкретный каталог, не учитывая временные файлы.
Пример
Предположим, у вас есть файл example.odt
, и вы хотите отслеживать его изменения и сохранения. Использование команды inotifywait
с параметром -e moved_to
иногда не срабатывает, потому что происходит создание нового временного файла и удаление старого, а не простое перемещение. Когда вы используете -e modified
, OpenOffice.org может выдать ошибку, так как временный файл, созданный для обновления, отсутствует после перемещения.
Применение
Для корректной работы inotifywait
при сохранении файлов из OpenOffice.org рекомендую настроить мониторинг каталога, в котором находятся файлы, а не самих файлов. Например, вместо:
inotifywait -mq -e moved_to /путь/к/файлу
лучше использовать:
inotifywait -mq -e create,delete -e moved_to /путь/к/каталогу
Это позволит отслеживать создание и удаление временных файлов, а также их перемещение. Таким образом, вы сможете реагировать на весь процесс сохранения файла в OpenOffice.org без сбоев.
Также рекомендую проверить наличие и управление временными файлами, используемыми OpenOffice.org для сохранности данных, чтобы убедиться, что наблюдение осуществляется в правильном каталоге.
Если у вас продолжаются проблемы, приведите примеры команд, которые вы используете, а также точные сообщения об ошибках от OpenOffice.org для более точного анализа.