CP не будет работать над текущим каталогом сценария удара

Блокировки файла не являются mandatory1 - т.е. Вы не можете заблокировать файл так, чтобы другой процесс не мог получить доступ к нему. Блокировка файла означает, что, если (nother) обрабатывают проверки, чтобы видеть, было ли это заблокировано, она будет знать.

Цель flock должен сделать материал как то, что Вы хотите, но необходимо затем использовать flock для каждого предпринятого доступа. Следует иметь в виду, что они блокируют вызовы; от man flock:

если блокировка не может быть сразу получена, скопление ожидает, пока блокировка не доступна


1. Который заставляет функцию казаться бесполезной, если Вы используете ее для, например, безопасность, но это не цель блокировок файла - они для синхронизации, которая является тем, что Вы делаете. Пользователь Leo указал, что может быть не стандартизированная реализация обязательного захвата файла в ядре Linux (см. это обсуждение), на основе исторических параллелей от другого *отклоняют операционные системы. Однако это надеется быть интерфейсом уровня C только.

2
22.06.2017, 13:59
2 ответа

Сообщение об ошибке не может устареть `*. {Html, txt, php} ' из CP означает, что либо:

  • не существует совпадающих файлов, либо
  • используют оболочку, которая не делает расширение скобки.

Какая оболочка вы используете в системе, где команда не удалась? Если это не Bash, а вместо Sh или Dash, то это может объяснить, что вы видите. Вы можете попробовать дать вашу команду *. HTML * .txt * .php вместо шаблона скобки.

1
27.01.2020, 22:00

Ваш интерпретатор скрипта к / bin / sh . В системе, которая расширяет включенный список, вы используете Bourne Bear Shell как / bin / sh . В системе, которая обрабатывает брекеты как обычные (нетушевые) символы, и жалуется, что подстановочный знак ничего не соответствует, вы используете Debian Almpist Shell как / Bin / Sh . Ваша интерактивная система входа в систему почти наверняка явно / Bin / Bash на обеих системах.

Если вы собираетесь использовать такие расширения к языку оболочки POSIX в скрипте, вы должны установить интерпретатор сценария, чтобы быть фактическим именем оболочки, которая их поддерживает. И наоборот, если вы собираетесь использовать / bin / sh в качестве интерпретатора скрипта в различных системах, вы должны строго прилипать к синтаксису оболочки, который является соответствием POSIX.

Дальше чтение

3
27.01.2020, 22:00

Теги

Похожие вопросы