Бешеной собаке 7 миль - не крюк, или как я привёл ссылки в lindocs к Правильному виду.
Бешеной собаке 7 миль - не крюк, или как я привёл ссылки в lindocs к Правильному
виду.
Колотову Александру в честь его дня рождения посвящается.
С днём рождения, Саня! :)
Некоторое время назад, на одной из линуксовок мы обсуждали проект
lindocs - замечательная подборка документации в котрой можно
найти очень много полезного. Однако, вероятно, часть документации
была собрана по Win* системой или перенесена оттуда, поэтому
при работе по *nix системами не работала часть ссылок из-за
несоответсвия регистра имён файлов.
Одним из самых простых и удобных решений было, хранить lindocs
на fat системе, для которой регистр в котором написано имя
глубоко безразличен и тогда все ссылки работают нормально.
Собственно именно этот способ я и использовал до того как
нашёл ещё одно "решение", о котором и хочу рассказать.
Недавно я решил провести эксперимент, на предмет обнаружения
"лишних" файлов, т.е. файлов которые лежат в lindocs, но на
которые, по тем или иным причинам нет ссылок с html страниц.
Для этого я... написал скрипт? Хм, конечно хорошо, но уж больно
лень. :) Да и хочется чего то такого... Unix Way-ного.
Что у нас тут на машине... ага, apache завалялся, для
экспериментов на подопытных браузерах...
Вот ему и придётся работать, ему и ещё... wget
Что может быть лучше! ...и неэкономнее :)
Собственно - за дело. Делаем в каталоге апача ссылку на
lindocs (они, как Вы, наверно, помните лежат на fat):
%ln -s /mnt/doc/lindocs/ lindocs
и командуем whet-у:
%wget -c -T 5 -o log -k -r http://inode/lindocs/
Строку, я, так и быть объяснять не буду, для того чтобы не
занимать место, и дать Вам, при необходимости, возможость
самостоятельно почитать документацию, что (по моим личным
наблюдениям) всегда полезнее :).
[ После нескольких часов работы... ]
Результаты:
Размер файлов:
%du -cd 1
842M ./inode
306K ./inode.bytesoft.hvn
856M .
856M total
(При стартовых)
%du -cd 1
1.2G total
Количество файлов:
%find ./ >../lindocs.before
%wc -l ../lindocs.before
65138 lindocs.before
(Аналогично для результирующего каталога)
%wc -l ../lindocs.after
36868 lindocs.after
Разница чувствуется? :)
Значит не зря, всё таки. Хм, а поконкретнее, кто, где, куда пропал?
%cat ../lindocs.before > lindocs.test; cat ../lindocs.after >>lindocs.test
%sort -f lindocs.test | uniq -i -u > result.log
%wc -l result.log
30138 result.log
(учитываются файлы которые отсутствуют в одном из каталогов,
поэтому число немного отличается от логически ожидаемой разности,
ведь wget тоже создал "пару" дополнительных файлов)
Что то потерялось?
Да. В частности, выяснилось, что очень много места занимают,
и нигде не упоминаются man pages к ASPLinux, хотя представлены
они в html, и часть howto тоже с ASPLinux Documentation CD.
Также были и другие файлы список которых слишком длинен,
чтобы приводить его здесь, но они занимали на порядок меньше чем
man-pages.
А чуть позже я обнаружил ещё один положительный эффект этого
"эксперимента" - wget создавал каталоги и файлы так, как
на них ссылались (хотя трудно было ожидать от него другого ;))
и в результате все ссылки стали работать!
p.s. Вот такой "ленивый" способ разрешить проблему с регистрами в
подборках гипертекстовых документов, который к тому же может,
иногда, сэкономить Вам место на диске.
p.p.s. Конечно, всё это можно было сделать гораздо более эффективнее, но
всегда есть более одного способа сделать это :)
(There is more than one way to do it.)
04/11/24
Author:Stan S. Krupderov mailto:pashelper[AT]mail.ru
засунь это в wiki...
есть в твоей реализации пара глюков: какие гарантии что материал не
потерялся? допустим, я ошибся и ссылку не него поставил, а на соседа...
или пришла ко мне документация: главная страничка с ссылками на
подстранички - я посмотрел тему на главной страничке - поставил в
индексный файл, а работосопособность ссылок не проверил - а они битые -
и у тебя таким образом не скачаются. Вывод надо проверить все ссылки...
Аналогично, с man страницами...
С путями - я однажды тоже думал так подправить, но руки не дошли -
значит ты первый...