Могу ли я изменить раздел подкачки linux на файловую систему без потери данных?

Это предупреждение VIM, которое может быть относительно важным, учитывая, как разрешения работают в UNIX. Очевидная неинтуитивность этого заключается в том, что файловые системы UNIX имеют разрешения на файл, хранящийся в i-узле файла. Структура каталога как-то раздельна и связывает только эти i-узлы. У каталогов также есть свои разрешения, которые говорят, можете ли вы связать / отменить связь с файлами в нем или прочитать его или перейти в подкаталоги. Эта конструкция позволяет отображать один и тот же файл в нескольких разных местах структуры каталогов (через жесткие ссылки). Говоря «add! To override», VIM пытается предупредить вас, что исходный файл будет отсоединен (так что он останется во всех других местах нетронутым), и новый файл будет создан и привязан к исходному месту в структуре каталогов. Если счетчик ссылок исходного файла уменьшается до нуля, исходный файл будет освобожден, но если нет, вы эффективно клонируете файл. Открытие файла также считается ссылкой, поэтому, если какая-то программа открыла файл, и вы соглашаетесь «добавить! Переопределить», программа не увидит изменений, внесенных вами в файл с помощью VIM. Файл будет отсоединен от директории VIM и после закрытия файла другой программой файл будет освобожден, если только он не был связан где-то в другом месте.

Обратите внимание, что в Windows разрешения на файлы хранятся в каталог, поэтому с точки зрения парадигмы разрешений Windows это поведение vim действительно может показаться странным. Для записи в файл Windows логически может также проверять некоторые разрешения на доступ к каталогам, даже разрешения суперкаталогов. Как было сказано выше, в UNIX права на каталоги не имеют отношения к манипуляции с файлом, насколько вы могли его перечислить и открыть (т. Е. Были х для всех супер-каталогов).

Например, у вас есть файл / home / user1 / foo, и он является тем же файлом, что и (т.е. hardlinked to) / home / user2 / foo, и файл не доступен для записи кем-либо и в настоящее время открыт программой P (открыт чтение-запись программой, запущенной с помощью root). Если user1 открывает его с помощью vim и перезаписывает, он создает свою собственную копию и больше не видит исходный файл. Если впоследствии user2 откроет свою связь с vim и запишет в нее, он снова отключится, и он создаст другую копию. Программа P по-прежнему будет видеть исходный файл и может свободно читать или записывать в него. Как только программа закроет файл, файл исчезнет (освободится файловой системой).

0
задан 1 December 2011 в 06:20

0 ответов

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

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