Kodama's home / tips.
実行例: $ LC_ALL=C wget -v --delete-after -m -np -k -p http://www.math.kobe-u.ac.jp/~kodama/ 2>&1 | gawk '/ERROR/{print $0" "l}/=>/{l=$0}' $ rm -rf www.math.kobe-u.ac.jp
この方法だと, リンクの参照先は分かるが, 複数の html ファイルのどれが参照元(href がある箇所)なのか, 別に探す必要がある.
スクリプトを見ると分かると思うが, 参照元のファイル名も表示するので, リンク切れの修正作業には, wget 版よりもこちらの方が使いやすい.
ダウンロード: check-link.rb
使用法: $ cd ~/public_html ; find . -name '*.htm*' -type f | check-link.rb
check-link.rb 先頭部分に http のホスト名などがあるので,適当に修正してから使う.
手元に, 参照元の html ファイルがあることが前提なので, blog や wiki には向かない. (参照元の html を ファイル名でなく URI で指定するように改造すると良いのだが, とりあえず省略.)
別ホストへのリンク切れに関しては, このスクリプトだと, 別ホストでも http の試験をすることになる. wget のデフォルトだと -r(又は -m) では別のホストへのリンクは確認はしない.
html をちゃんと解析すべきなのだが, その辺は手抜き. 大抵の場合は, これで問題が無い.
Kodama's home / tips.