20

Я запускаю сценарий оболочки, который пишет в файл.
Этот сценарий может занять много времени, и я хотел бы отслеживать частичный вывод, а не ждать завершения всего сценария.

Безопасно ли открывать (двойной щелчок) файл, который записывается сценарием?

4 ответа4

41

Чтение файла безопасно, хотя двойной щелчок, который вы упомянули, вероятно, откроет файл в каком-то редакторе, который предложит вам внести изменения и сохранить их. Происходят ошибки, поэтому я рекомендую команды, которые даже не позволят вам изменить файл.

Это примеры, которые работают в терминале; они будут только читать файл:

cat file
less file
less +F file
tail -n 5 file
tail -f file
13

Пока ты не пишешь, все должно быть в порядке.

Тем не менее, я бы порекомендовал использовать

tail -f log_file

в другом терминале.

Эта команда будет "следовать" файлу log_file и записывать вновь добавленное содержимое, как только оно будет обновлено сценарием.

1

Недостаточно представителей, чтобы добавить комментарий к ответу Камиля Мачоровского:

Для некоторых файлов вам понадобится tail -F file так что следующее будет продолжаться через ротацию. Смотрю системный журнал например.

-1

В случае, если сценарий (или базовая реализация платформы) многократно открывает и закрывает дескриптор файла во время своей работы, он может столкнуться с ошибкой нарушения совместного использования в последующем открытом режиме записи по следующим причинам:
1) Сценарий может запросить доступ на запись в монопольном режиме (исключая одновременный доступ на чтение), поэтому, если ваша программа редактирования файлов / просмотра даже пока только читает файл, это может вызвать ошибку в сценарии записи.
2) Кроме того, некоторые редакторы / программы просмотра файлов блокируют файл на все время, в течение которого они открывают файл.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .