В значительной степени как заголовок предполагает, мой коллега утверждает, что использование текстового редактора вместо синтаксического анализатора (такой как меньше) блокирует файл, и в случае файлов журнала делает это таким образом, что файл журнала не может быть записан в.
Я никогда не слышал об этом прежде, и просто некоторое начальное тестирование находит, что это не имеет место. Кроме того, я не могу найти, что что-либо об этом на Google ищет для предложения, откуда у него могла бы быть эта идея.
энергия не делает этого, но я не уверен в других. Однако существует очень простой способ проверить это:
Открывают два окна терминала (консоль, терминал гнома, и т.д.), и выполняют следующие команды в первой консоли:
touch ~/test.txt
vim ~/test.txt
Теперь, в Вашей второй консоли, вводят следующее:
echo "This is a test" >> ~/test.txt
, Если файл заблокирован энергией, Ваша команда во второй консоли перестанет работать, поскольку файл не может быть записан в. Это не перестанет работать. Повторитесь с любым редактором, которого Вы хотите как шаг № 2 в первой консоли.
, Очевидно, при попытке сохранить какие-либо изменения в своей первой консоли, Вы блуждаете в неизведанную территорию, но до добавления к файлам журнала идут, это безопасно.
Некоторые редакторы, такие как энергия, gedit и другие, создают "теневой" файл при открытии файла, чтобы указать, что файл открыт в редакторе. Это не блокирует, и ничего не делает к другим приложениям в Вашей системе - она просто служит способом для редактора знать, что файл открыт.
vim
и vi
делают ( пример из эффекта). Они не препятствуют тому, чтобы файлы были записаны в, но бросают предупреждение, если Вы используете другой экземпляр vi
/ vim
для редактирования того же файла. nano
и emacs
(v24.3.1) не делает (по крайней мере, по умолчанию). Я должен буду искать других редакторов. На самом деле самые достойные редакторы на самом деле способны к наблюдению за внешними изменениями в файле, предполагая сильно, что они не могут предотвратить внешние изменения.
Это, возможно, верное, если приложение использует некоторую функцию блокировки (или использование O_EXLOCK
в системах, которые поддерживают его, или flock
, или что-то еще в Windows).