vim/vi/nano/etc блокирует файлы от того, чтобы быть записанным до?

В значительной степени как заголовок предполагает, мой коллега утверждает, что использование текстового редактора вместо синтаксического анализатора (такой как меньше) блокирует файл, и в случае файлов журнала делает это таким образом, что файл журнала не может быть записан в.

Я никогда не слышал об этом прежде, и просто некоторое начальное тестирование находит, что это не имеет место. Кроме того, я не могу найти, что что-либо об этом на Google ищет для предложения, откуда у него могла бы быть эта идея.

2
задан 22 September 2014 в 19:32

2 ответа

энергия не делает этого, но я не уверен в других. Однако существует очень простой способ проверить это:

Открывают два окна терминала (консоль, терминал гнома, и т.д.), и выполняют следующие команды в первой консоли:

touch ~/test.txt
vim ~/test.txt

Теперь, в Вашей второй консоли, вводят следующее:

echo "This is a test" >> ~/test.txt

, Если файл заблокирован энергией, Ваша команда во второй консоли перестанет работать, поскольку файл не может быть записан в. Это не перестанет работать. Повторитесь с любым редактором, которого Вы хотите как шаг № 2 в первой консоли.

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

Некоторые редакторы, такие как энергия, gedit и другие, создают "теневой" файл при открытии файла, чтобы указать, что файл открыт в редакторе. Это не блокирует, и ничего не делает к другим приложениям в Вашей системе - она просто служит способом для редактора знать, что файл открыт.

5
ответ дан 7 October 2019 в 01:54

vim и vi делают ( пример из эффекта). Они не препятствуют тому, чтобы файлы были записаны в, но бросают предупреждение, если Вы используете другой экземпляр vi / vim для редактирования того же файла. nano и emacs (v24.3.1) не делает (по крайней мере, по умолчанию). Я должен буду искать других редакторов. На самом деле самые достойные редакторы на самом деле способны к наблюдению за внешними изменениями в файле, предполагая сильно, что они не могут предотвратить внешние изменения.

Это, возможно, верное, если приложение использует некоторую функцию блокировки (или использование O_EXLOCK в системах, которые поддерживают его, или flock , или что-то еще в Windows).

0
ответ дан 7 October 2019 в 01:54

Другие вопросы по тегам:

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