Webサーバやアプリケーションの設定でリンクに
- guid=onを自動付与しちゃってたり
- URLにセッションID埋め込んだり
してると、wgetでクロールした際にファイル名にまで
- index.html?guid=on&sess=xxxxxxx
- info.html?guid=on&sess=xxxxxxx
といった具合にクエリストリングがついてしまう。邪魔。
なので、一括リネームするワンライナーコマンドを...書きたかった...けど...途中まで考えて嫌になったのでsystemコマンド+PHPで処理した。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$base_dir = '/path/to/'; | |
$cmd = 'find ' . $base_dir . ' -type f -regex ".*\.\(html\|jpg\|gif\|txt\|css\)\?.*$" -print0 | xargs -0 ls'; | |
$path_list = explode("\n", shell_exec($cmd)); | |
foreach ( $path_list as $path ) { | |
if ($path !== '') { | |
$rename_path = preg_replace("/\?.*$/u", '', $path); | |
rename($path, $rename_path); | |
} | |
} |
findコマンドで指定ディレクトリ配下の html, jpg, gif, txt, css ファイルパス一覧を取得して、「?なんたら」がファイル名に含まれていたらその部分を削除リネーム。
こういうのをサクッとワンライナーで書けるようになりたいれす(´ω`)
≪ 2011-06-06
キルマンデーズのテーマ
2011-06-04 ≫
Jakszyk. Fripp And Collinsm, あら恋