リモート鯖にファイルを落として展開するときのメモ

普通にWebアプリ開発している人は、アプリやらライブラリやらプラグインをいったん手元にダウンロードしてから、ftpなりで鯖に上げているようですが、私はほとんどの場合sshでサーバを直接いじっているので、時々ファイルの取得で鬼ハマります(sourceforgeみたいにdirect linkも併記してくれていると嬉しいのですが)。

というわけで、シェルで繋いだ先でファイルを取得したい時のTIPSをいくつか。

●とりあえずリンクはわかっている場合

だいたいの場合、該当のファイルが置かれているサイトをWebブラウザで開いていることが多いと思うので、まずリンクを右クリックでコピー

シェルに切り替えて、ダウンロードしたい場所に切り替えて、wget “コピーしたリンク”

●リンクはわかっているけど、なんか遷移しそうな予感がする場合

これは経験則によるところが多いのですが、リンクのお尻が.zipとかで終わっていない場合、あとはurlをよく見るとダウンロードファイル自体が置いてあるサイトのurlが内包されている(/down.php?http〜/file.zipみたいな)場合、多いです。こういう場合は、wget/curl -Oはうまくいきません。では、どうするか。

w3m “コピーしたリンク”

TABキーをしばくとリンク文字列をおっかけてくれるので、該当ファイルのところまで進む→Enter

ファイルのダウンロードの確認をしてくるので、Enter

Qキーで終了。確認(y/N)してくるので、y

こんな感じで、まんまと入手できます。

●ファイルの展開時の注意

だいたいの場合、フォルダに入れて配布してくれているのですが、まれにそうでないタイプのアーカイヴをしている人がいます。これをコマンドラインでunzipすると、そのディレクトリに直接ファイルがぶちまかれることになり、大物かつ第一階層にたくさんファイルがあるモノの場合、たいへん悲惨なコトになります。さらに、index.phpだのREADME.txtだのが上書きされることもあり、なかなかの惨状を呈することがあります。しかし、毎回mkdirするのもめんどうだし、大体の場合はちゃんとフォルダを作ってくれるので、フォルダがムダに二階層になり、さらにその構造の修正でコマンドをびしばし打つ、という非生産的な作業が発生しがちです。

では、どうするか。

vi “落として来たファイル”

これで、内容のファイル構造がブラウズできるので、該当のブツがフォルダに入っているのか、その階層にぶちまけられてしまうのか、があらかじめわかります。超便利☆

多くのサーバでは、wgetでなくcurlが、w3mでなくlynxが入っていると思いますが、私はどちらも前者を愛好しているので、みんなもインスコするといいよ! (と、説明をはしょる漏れ)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です