LINUX.ORG.RU
решено ФорумTalks

[Hardlinks] Моя не понимать


0

2

Мягкие симлинки - тут все понятно, почти каждый день с ними работаю. А про жесткие ссылки - даже не знаю, для чего они нужны и когда полезны. Поясните, пожалуйста...

Когда файл должен иметь несколько имён в файловой системе, не? Когда необходима возможность удалить исходное имя так, чтобы файл остался доступен по другим ссылкам.

PolarFox ★★★★★
()

Т.е. документацию и man ln принципиально игнорируем?

Eddy_Em ☆☆☆☆☆
()

> А про жесткие ссылки - даже не знаю, для чего они нужны и когда полезны.

Вроде как исторически возникли первыми именно жесткие, и в BSD-системах только они и были.
А потом появились «мягкие» ... у них разные принципы организации в дисковой памяти.

См. еще,
http://citforum.ru/operating_systems/unix/glava_14.shtml#_2_4_4

pacify ★★★★★
()
Ответ на: комментарий от madcore

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от KERNEL_PANIC

Вот вы и подтвердили мое предыдущее сообщение: механизм «мягких» ссылок вам совершенно непонятен :)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от KERNEL_PANIC

rm name1 и name2 становится сломанной ссылкой. Если создать хардлинк, то при удалении name1, файл всё ещё будет доступен по name2. У каждого файла в фс есть хотя бы 1 хардлинк, когда у файла нет хардлинков и открытых файловых дескрипторов, он удаляется.

PolarFox ★★★★★
()
Ответ на: комментарий от KERNEL_PANIC

нет не то же.

max@nix:~/
% echo foo bar
foo bar
max@nix:~/
% echo foo > bar
max@nix:~/
% ln bar quux
max@nix:~/
% cat bar 
foo
max@nix:~/
% cat quux 
foo
max@nix:~/
% rm bar
rm: удалить обычный файл «bar»? y
max@nix:~/
% cat quux
foo
max@nix:~/
% ln -s quux bar
max@nix:~/
% cat bar
foo
max@nix:~/
% rm quux 
rm: удалить обычный файл «quux»? y
max@nix:~/
% cat bar
cat: bar: Нет такого файла или каталога
Begemoth ★★★★★
()

Вообще да, после всяких FAT32 и DOS трудно привыкнуть, что файл и имя файла в файловой системе — две большие разницы.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

А вот если бы начинали по-человечески, с юникса, таких проблем бы не было...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от PolarFox

rm name1 и name2 становится сломанной ссылкой. Если создать хардлинк, то при удалении name1, файл всё ещё будет доступен по name2. У каждого файла в фс есть хотя бы 1 хардлинк, когда у файла нет хардлинков и открытых файловых дескрипторов, он удаляется.

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

KERNEL_PANIC ★★★
() автор топика
Ответ на: комментарий от KERNEL_PANIC

> такое впечетление, что я файл скопировал

Скопировал ты не файл, а его имя.

Он и под вендой показывает как 2 разных файла

Под виндой хардлинки и симлинки (или как они там называются) в файлбраузере никак не обозначаются. Их нормальная поддержка хотя бы через командную строку появилась лишь в висте/севене.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

> Их нормальная поддержка хотя бы через командную строку появилась лишь в висте/севене.
У них там свои ссылки, которые не совместимые с ЮНИКС. По крайней мере я так понял.

KERNEL_PANIC ★★★
() автор топика
Ответ на: комментарий от PolarFox

> Вообще да, после всяких FAT32 и DOS трудно привыкнуть, что файл и имя файла в файловой системе — две большие разницы.

В принципе, ничего не мешает и в FAT16/32 делать хардлинки. Только они проверялками дисков будут считаться за ошибки.

praseodim ★★★★★
()

Не могу не процитировать слова классика:

«Уж 200 раз твердили Сене:
Хардлинк спасет от удаленья!
А кто создать его поможет?
Crontab и man, тупая рожа!»

(автор — no-dashi)

shimon ★★★★★
()
Ответ на: комментарий от PolarFox

Насколько я помню. симлинки в NTFS появились в offtopic2000 (нужно было для появления команды ln ресурс кит доставлять). Насчет хардлинков не помню.

sleepflint ★★★
()
Ответ на: комментарий от sleepflint

> нужно было для появления команды ln ресурс кит доставлять
mklink называется. Не знаю на счет 2К, в висте есть по дефолту. Кстати с очень неудобными параметрами =((

KERNEL_PANIC ★★★
() автор топика

Можно сказать, что жесткая ссылка указывает на файл, а мягкая - на жесткую.

vurdalak ★★★★★
()

Представь огромную музыкальную коллекцию. Какой-либо трек у тебя забит как металл, тяжеленькое, Rio и т.д. В какой-то момент ты психуешь и удаляешь весь «металл». Если на него были сделаны хардлинки, то трек все равно сохранится.

spacel0rd
()
Ответ на: комментарий от sleepflint

>симлинки в NTFS появились в offtopic2000 (нужно было для появления команды ln ресурс кит доставлять).

Или юзать Far Manager.

Насчет хардлинков не помню.


Кажись тогда же.

Pavval ★★★★★
()

Мне известно по меньшей мере одно практическое применение жёстких ссылок.

Скрипт, который с помощью rsync делает бекап за несколько дней, и для экономии места не изменившиеся файлы делаются именно жёсткими ссылками.

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

Скрипт, который с помощью rsync делает бекап за несколько дней, и для экономии места не изменившиеся файлы делаются именно жёсткими ссылками.

жёсткими ссылками на уже сделанные копии файлов ты имеешь в виду? Да, вполне годное предложение, ИМХО.

spunky ★★
()
Ответ на: комментарий от Xellos

В каталоге у файла указатель на цепочку в FAT. Можно добавить в каталог новое имя и приписать ему указатель в FAT уже имеющегося файла.

Xenesz ★★★★
()
Ответ на: комментарий от sleepflint

Между прочим, под виндоц этих симлинков еще и 2 разных вида: до NT 6.0 и после. Одни создаются через запись на диск хитрой структуры, составленной руками, другие - готовой функцией.

Uter
()
Ответ на: комментарий от PolarFox

>У каждого файла в фс есть хотя бы 1 хардлинк

Не обязательно. Файл может быть открыт программой. И тогда при его удалении «хардлинков» на него больше нет, а файл всё ещё жив, пока не будет отпущен программой :)

KRoN73 ★★★★★
()
Ответ на: комментарий от PolarFox

>Вообще да, после всяких FAT32 и DOS трудно привыкнуть, что файл и имя файла в файловой системе — две большие разницы.

Как раз в DOS или FAT легко «ручками», через diskedit было сделать более чем одно имя на файл. Другое дело, что ОС этого не знала и при удалении любого из файлов место на диске считалось свободным со всеми вытекающими.

FAT там и отличалась от ряда систем того времени, что имела отдельно файл, размещённый на диске, отдельно - карту его размещения и отдельно - таблицы имён.

KRoN73 ★★★★★
()
Ответ на: комментарий от PolarFox

>Под виндой хардлинки и симлинки (или как они там называются) в файлбраузере никак не обозначаются.

Если файлбраузер - это FAR, то обозначаются :)

Их нормальная поддержка хотя бы через командную строку появилась лишь в висте/севене.


В FAR'е Alt-F6 уже работала лет 10 назад...

KRoN73 ★★★★★
()
Ответ на: комментарий от spacel0rd

>В какой-то момент ты психуешь и удаляешь весь «металл». Если на него были сделаны хардлинки, то трек все равно сохранится.

Вот потому у меня вся видеоколлекция с сортировками по годам/жанрам/актёрам/странам/etc сделана через симлинки :) А то заманаешься потом вычищать всё, если какой-то фильм удалить захочешь :D

KRoN73 ★★★★★
()
Ответ на: комментарий от Xellos

>Я понимаю что хекс-редактором. Я спрашиваю, что сделать

В таблице имён (структуру я, естественно, не помню) будет ссылка на первый кластер файла.

Делаешь новую запись с таким же параметром, как у нужного тебе файла. Или меняешь у уже имеющегося.

KRoN73 ★★★★★
()
Ответ на: комментарий от sin_a

>Да. Кроме того, невозможны хардлинки на каталоги.

В NTFS, кажется, возможны хардлинки на сетевые ресурсы. И на каталоги :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

У меня разрыв шаблона.

А там нет сухой воды или прохладного огня?

sin_a ★★★★★
()
Ответ на: комментарий от KRoN73

Мда, хардлинки на сетевые ресурсы - что-то из области уфологии. А вот хардлинк на директории можно и в линуксе сделать при желании...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

>Мда, хардлинки на сетевые ресурсы - что-то из области уфологии

Есть там какая-то хитрая хрень на эту тему. Но врать не буду, сам не сталкивался :)

KRoN73 ★★★★★
()
Ответ на: комментарий от sin_a

> Мне известно по меньшей мере одно практическое применение жёстких ссылок.

pdumpfs

И так, например, сделан snapshot.debian.org

YAR ★★★★★
()
Ответ на: комментарий от Xellos

> Я уже плохо помню FAT. Как там можно делать хардлинки?

Там это называется кросс-чейн. Когда одна цепочка кластеров принадлежит разным элементам каталога. Считается ошибкой. Сделать можно было редактором диска.

Lumi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.