Блокировки файла не являются mandatory1 - т.е. Вы не можете заблокировать файл так, чтобы другой процесс не мог получить доступ к нему. Блокировка файла означает, что, если (nother) обрабатывают проверки, чтобы видеть, было ли это заблокировано, она будет знать.
Цель flock
должен сделать материал как то, что Вы хотите, но необходимо затем использовать flock
для каждого предпринятого доступа. Следует иметь в виду, что они блокируют вызовы; от man flock
:
если блокировка не может быть сразу получена, скопление ожидает, пока блокировка не доступна
1. Который заставляет функцию казаться бесполезной, если Вы используете ее для, например, безопасность, но это не цель блокировок файла - они для синхронизации, которая является тем, что Вы делаете. Пользователь Leo указал, что может быть не стандартизированная реализация обязательного захвата файла в ядре Linux (см. это обсуждение), на основе исторических параллелей от другого *отклоняют операционные системы. Однако это надеется быть интерфейсом уровня C только.
Сообщение об ошибке не может устареть `*. {Html, txt, php} '
из CP
означает, что либо:
Какая оболочка вы используете в системе, где команда не удалась? Если это не Bash, а вместо Sh или Dash, то это может объяснить, что вы видите. Вы можете попробовать дать вашу команду *. HTML * .txt * .php
вместо шаблона скобки.
Ваш интерпретатор скрипта к / bin / sh
. В системе, которая расширяет включенный список, вы используете Bourne Bear Shell как / bin / sh
. В системе, которая обрабатывает брекеты как обычные (нетушевые) символы, и жалуется, что подстановочный знак ничего не соответствует, вы используете Debian Almpist Shell как / Bin / Sh
. Ваша интерактивная система входа в систему почти наверняка явно / Bin / Bash
на обеих системах.
Если вы собираетесь использовать такие расширения к языку оболочки POSIX в скрипте, вы должны установить интерпретатор сценария, чтобы быть фактическим именем оболочки, которая их поддерживает. И наоборот, если вы собираетесь использовать / bin / sh
в качестве интерпретатора скрипта в различных системах, вы должны строго прилипать к синтаксису оболочки, который является соответствием POSIX.
/ bin / sh
. Ubuntu Wiki. / bin / sh
. Debian Wiki.