Каково различие между жесткими ссылками и скопированными файлами?

[Я поймал некоторые неправильные представления здесь, которые я думаю, будет это сообщение убирать в конечном счете]

Не должно быть никакого различия, так как оба обращаются к /var/run/utmp файл, который имеет его собственный формат для хранения записей. Если вообще существует какое-либо различие, то Ваш utmp файл арестован. время работы показывает количество времени, которое передало, так как система была загружена или сколько времени система работала. Это не говорит Вам системные часы или время начальной загрузки системы. Информация времени начальной загрузки системы хранится /var/run/wtmp файл.

[centos@centos temp]$ date; uptime; who -b
Fri Dec  9 20:41:40 IST 2011
 20:41:40 up  1:32,  2 users,  load average: 0.50, 0.37, 0.29
         system boot  2011-12-09 19:11

время работы относится также/proc/uptime, который по существу сохраняет счетчики в ядре.

[centos@centos temp]$ sleep 1; cat /proc/uptime; uptime; sleep 5; cat /proc/uptime ; uptime
5914.79 5271.83
 20:47:39 up  1:38,  2 users,  load average: 0.29, 0.31, 0.27
5920.07 5276.80
 20:47:44 up  1:38,  2 users,  load average: 0.56, 0.36, 0.29

/var/run/wtmp отнесен командами last/lastb. who & w относится /var/run/utmp файл. last reboot покажет журнал всех перезагрузок, так как файл журнала был создан.

Кроме того, если у Вас есть/proc файловая система, затем инструмент такой как procinfo может дать Вам время начальной загрузки также.

Пример:

bash$ procinfo | grep Bootup
Bootup: Wed Mar 21 15:15:50 2001 Load average: 0.04 0.21 0.34 3/47 6829
23
02.01.2020, 02:36
4 ответа

При копировании файла он копирует содержание. Таким образом, если Вы изменяете содержание единственного файла, который не имеет никакого эффекта на другой.

Если Вы делаете hardlink, который создаст файл, указывающий на то же содержание. Таким образом, при изменении содержания любого из файлов изменение будет замечено на обоих.

31
27.01.2020, 19:41
  • 1
    Для очень больших файлов действительно ли создание является жесткой ссылкой всегда быстрее, чем копирование исходного файла? –  Jorge Bucaran 15.10.2015, 07:40

Жесткая ссылка является basicly второе имя файла для того же файла. Таким образом, если Вы hardlink файл, это только будет однажды в файловой системе и поэтому только займет место однажды. Таким образом, Вы хотите использовать это, если Вы хотите сохранить дисковое пространство

14
27.01.2020, 19:41
  • 1
    Спасибо за быстрый ответ. Затем, почему я хотел бы использовать жесткую ссылку вместо гибкой ссылки? –  Mike B 16.02.2013, 20:11
  • 2
    softlink является basicly указатель на другой файл. Таким образом, при удалении исходного файла softlink будет все еще существовать, но будет поврежден. hardlink является 2 названиями того же файла, таким образом, они могут быть индивидуально удалены. объяснение –  Peter 16.02.2013, 20:13
  • 3
    Peter хорошо, но он не учтен "число каналов". В inode файла (на дисковых метаданных) существует число каналов. Жесткая ссылка увеличивает число каналов, гибкая ссылка не делает. Ядру позволяют удалить содержание файла, если число каналов опускается до нуля. –  Bruce Ediger 16.02.2013, 20:15
  • 4
    я думаю ответ Alan на это, имеет важный момент: изменение файла изменяет все, что это - hardlinks с копией, у них было бы другое содержание. –  donothingsuccessfully 16.02.2013, 20:33

В файловых системах Unix каждое имя файла является на самом деле жесткой ссылкой на местоположение данных по диску, названному inode. При создании новой жесткой ссылки на существующий файл это не займет дополнительного места на диске, поскольку это - просто другой указатель на те же данные. Если Вы отредактируете данные одним или другой ссылкой (или отредактируете inode непосредственно) будут изменены, то оба файла.

Система проводит подсчет того, сколько жестких ссылок каждый inode имеет. Когда число каналов 0, файл больше не может достигаться, и данные отмечены как безопасные быть перезаписанными. Так, учитывая файл с 2 жесткими ссылками при удалении любой ссылки данные не будут удалены. Только если Вы удаляете оба, будет данные закончиться.

Вы видите inode числа файлов с помощью -i переключитесь на ls команда.

Гибкая ссылка, с другой стороны, указывает на другой файл своим именем файла. Если Вы переместите или удалите исходный файл, то связь будет разорвана.

6
27.01.2020, 19:41

Со ссылкой на часть вопроса, который спросил, "почему я захочу использовать жесткие ссылки вообще?":

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

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

Классическим примером является LVM. Когда-то HP-UX использовал трудно связанные файлы для различных исполняемых файлов (например. vgdisplay, vgcreate, vgextend, и т.д. Сегодня, как Linux, эти команды являются на самом деле символьными (мягкими) ссылками на lvm исполняемый файл.

1
27.01.2020, 19:41
  • 1
    Это не имеет никакого отношения к вопросу. –  rjmunro 17.02.2013, 01:06
  • 2
    @rjmunro я прошу отличаться. OP спросил, "почему я хотел бы использовать жесткие ссылки вообще?" –  JRFerguson 17.02.2013, 09:14
  • 3
    я не понимаю последнего примера. Однажды, были жесткие ссылки на большое количество исполняемых файлов, теперь существуют гибкие ссылки на один исполняемый файл. Как те гибкие ссылки различимы? –  Emanuel Berg 18.02.2013, 05:39
  • 4
    @EmanuelBerg, которым Моя точка была то, что независимо от или трудно или гибкие ссылки используются, это - имя, которым исполняемый файл вызывается, который определяет опции и аргументы, которые допустимы для выполнения. –  JRFerguson 18.02.2013, 05:47
  • 5
    @EmanuelBerg TMTOWTDI –  JRFerguson 19.02.2013, 04:41

Теги

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