К вопросу об организации книг: symlink vs. hardlink

 
Libroom Forum IndexПрограммное обеспечение
AuthorMessage

НуПогоди
Член клуба The eBook

Член клуба The eBook



Joined: 11 Oct 2011
Posts: 388


Location: Jena

Posted: 04.12.2014 22:02    

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

Есть в линуксе (и не только) такая штука -- symbolic link
Code:
ln -s target_path link_path

Места в отличие от копии файла не занимает, а CoolReader (да и весь остальной linux-софт) открывает по ней исходный файл. Если разбросать симлинки по разным папкам, можно легко поиметь полный аналог этой "фичи" коллекций (и даже без ограничений по вложенности - хоть 5 уровней, хоть 50)
_________________
Rooted: Kindle 3.0.3, Tolino Shine 1.1.1, THL T7
 
View user's profile ^

Ben Gunn
Член клуба The eBook

Член клуба The eBook



Joined: 28 Nov 2008
Posts: 5089


Location: Москва

Posted: 04.12.2014 22:25    

НуПогоди wrote:
Есть в линуксе (и не только) такая штука -- symbolic link
Code:
ln -s target_path link_path

Только в данном случае нужен не soft, а hard link.
 
View user's profile ^

НуПогоди
Член клуба The eBook

Член клуба The eBook



Joined: 11 Oct 2011
Posts: 388


Location: Jena

Posted: 04.12.2014 23:03    

Зачем? места слишком много? ну, как пожелаете
Code:
so@so-Lenovo-G700:~/Downloads/books/to library/tmp > ln -s test.fb2.zip symlink
so@so-Lenovo-G700:~/Downloads/books/to library/tmp > ln -P test.fb2.zip hardlink
so@so-Lenovo-G700:~/Downloads/books/to library/tmp > ls -l
total 544
-rw-r--r-- 2 so so 275029 Nov 17  2011 hardlink
lrwxrwxrwx 1 so so     12 Dez  4 20:16 symlink -> test.fb2.zip
-rw-r--r-- 2 so so 275029 Nov 17  2011 test.fb2.zip

_________________
Rooted: Kindle 3.0.3, Tolino Shine 1.1.1, THL T7
 
View user's profile ^

Ben Gunn
Член клуба The eBook

Член клуба The eBook



Joined: 28 Nov 2008
Posts: 5089


Location: Москва

Posted: 05.12.2014 12:19    

НуПогоди wrote:
Зачем? места слишком много?

Странный вопрос, если вы представляете разницу между soft и hard линками...
 
View user's profile ^

НуПогоди
Член клуба The eBook

Член клуба The eBook



Joined: 11 Oct 2011
Posts: 388


Location: Jena

Posted: 05.12.2014 13:37    

Если этот вопрос показался странным, задам другой: вы знаете, как оценить размер хардлинка? я до сих пор исходил из того, что он занимает столько же, сколько пустая папка, т.е. 4096. А symbolic link занимает куда меньше -- в нем по существу прописан путь к исходному файлу
ПС общую разницу (при операциях над исходником - удалении, перемещении и тд) я представляю
_________________
Rooted: Kindle 3.0.3, Tolino Shine 1.1.1, THL T7
 
View user's profile ^

Ben Gunn
Член клуба The eBook

Член клуба The eBook



Joined: 28 Nov 2008
Posts: 5089


Location: Москва

Posted: 05.12.2014 13:56    

НуПогоди wrote:
Если этот вопрос показался странным, задам другой: вы знаете, как оценить размер хардлинка? я до сих пор исходил из того, что он занимает столько же, сколько пустая папка, т.е. 4096. А symbolic link занимает куда меньше -- в нем по существу прописан путь к исходному файлу
ПС общую разницу (при операциях над исходником - удалении, перемещении и тд) я представляю

В файле-каталоге (directory) в UNIX файлы адресуются ссылками на номера i-node. Если в разных каталогах файлы ссылаются на одни и те же i-node, это хард линк. Если имя файла ссылается на путь, это софт. В этом смысле размерами что тех, что других можно пренебречь.
Существенная разница в том, что для хард линков все имена одного файла (в разных каталогах) равноправны. Поэтому, если у вас на файловой системе имитируется каталогизация типа тэгов (один файл имеет имена в разных папках), вы можете спокойно удалять лишние имена (тэги) и файл не пропадет, пока вы не удалите его последнее имя. Это в случае хард линков.
В софт линках у вас есть 'primary name', поэтому имена файла неравноправны. Если вы грохнете оригинал, пропадут все другие имена.
 
View user's profile ^

НуПогоди
Член клуба The eBook

Член клуба The eBook



Joined: 11 Oct 2011
Posts: 388


Location: Jena

Posted: 05.12.2014 14:20    

Quote:
В файле-каталоге (directory) в UNIX файлы адресуются ссылками на номера i-node. Если в разных каталогах файлы ссылаются на одни и те же i-node, это хард линк. Если имя файла ссылается на путь, это софт. В этом смысле размерами что тех, что других можно пренебречь.
Существенная разница в том, что для хард линков все имена одного файла (в разных каталогах) равноправны. Поэтому, если у вас на файловой системе имитируется каталогизация типа тэгов (один файл имеет имена в разных папках), вы можете спокойно удалять лишние имена (тэги) и файл не пропадет, пока вы не удалите его последнее имя. Это в случае хард линков.
В софт линках у вас есть 'primary name', поэтому имена файла неравноправны. Если вы грохнете оригинал, пропадут все другие имена.
Функциональную разницу между типами линков и что с ними происходит в случае удаления исходника, как уже писал, я представляю. Я спрашивал о конкретном размере хардлинков, отличается ли он от размера пустой папки -- и общие слова меня пока не убедили, что их физический размер сравним с софтлинками.
Да, размеры symbolic и hard линков не сопоставимы с размером исходного файла, и тем не менее... если путь к исходнику достаточно короткий вроде test.fb2.zip, соотношение, насколько я вижу, может достигать нескольких сотен (в конкретном примере 4096 : 12).
_________________
Rooted: Kindle 3.0.3, Tolino Shine 1.1.1, THL T7
 
View user's profile ^

Ben Gunn
Член клуба The eBook

Член клуба The eBook



Joined: 28 Nov 2008
Posts: 5089


Location: Москва

Posted: 05.12.2014 14:51    

НуПогоди wrote:
Я спрашивал о конкретном размере хардлинков, отличается ли он от размера пустой папки -- и общие слова меня пока не убедили, что их физический размер сравним с софтлинками.

Вообще-то, размер хард линка никакого отношения к размерам пустых "папок" не имеет. Да и вообще никакого отношения к папкам. Это просто запись в файле каталога. В отличие от софт линка, который есть объект файловой системы со своим размером. Т.о., размер хард линка всегда меньше размера софт линка. Чаще всего, его просто нет. Laughing
 
View user's profile ^
Libroom Forum IndexПрограммное обеспечениеAll times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© Libroom, 2021