ドリームウェーバーで「サイト全体のリンクチェック...」を実行すると「リンク切れリスト(単独ファイルリスト)」を作ってくれる。
こんな感じのリストになる。
images/old.jpg
images/very_old.jpg
diary/old.html
diary/very_old.html
...
このhtmlやjpgファイルのリスト、なんと 1万6千行もあった。(おいおい!)
さすがに手作業で消すには社会保険庁の年金照合作業のような気がするので、シェルスクリプトか、Perlスクリプトで一気に消したい。
流れは以下の通り。
1. リンク切れリストの改行をLFにして保存する。 (list.txtという名前にした)
2. リンク切れリストをhtmlドキュメントルートに置く。(FTPでアップしておく)
3. htmlドキュメントルートに移動して、リンク切れリスト内のファイルを削除していく。
(ドキュメントルートは、/home/web/puclic_htmlとする)
$ cd /home/web/public_html/
$ cat list.txt (確認しておく)
$ cat list.txt | xargs rm -f {}
実行前に、考慮しておくことのお勧めは以下の通り。
※ 必ず、バックアップしたディレクトリで実験する。問題ないことを確認しておく。
※ robots.txt が削除リストに入っているので消しておく。
※ favicon.ico が削除リストに入っているのでリストから消しておく。
※ .htaccess が削除リストに入っているのでリストから消しておく。
※ JavaScript からのジャンプ先ページがリストに含まれていたら消しておく。
※ *.backup など、バックアップを削除したくない場合はリストから消しておく。
※ ドリームウィーバーが吐き出したリストに「絶対リンク」http://〜 が含まれていたら置換するか、リストから消しておく。
※ ファイル名に含まれる 半角スペース は \(バックスラッシュ)と半角スペース に一括置換えしておく。
※ ファイル名に含まれる '(シングルクォート) は \(バックスラッシュ)と'(シングルクォート) に一括置換えしておく。
※ *.mov *.rm *.wvx *.wmv などムービー関連は、リファレンスムービーからジャンプする場合を考えて、削除リストに入れておいてよいかチェックしておく。
結局、rubyやperlのお世話になるまでもなかった...。