File_put_contents() с флагом LOCK_EX блокирует файл только для PHP или для всех программ?
Вот у file_put_contents есть флаг LOCK_EX (Получить эксклюзивную блокировку на файл на время записи. Другими словами, между вызовами fopen() и fwrite() произойдет вызов функции flock(). Это не одно и то же, что вызов fopen() с флагом "x".)
Я не понимаю, он только для php блокирует файл или для всех программ?
т.е. я боюсь, что bash-скрипт допустим может прочитать файл, когда он еще записан только наполовину)
Все функции с файловой системой, которые на f или file работают, условно, через api операционной системы. Условно, работают напрямую с памятью, а значит, блокировка будет не на уровне языка. LOCK_EX удобная и надёжная опция. Можно и нужно использовать.