Linuxゲリラ戦記

ファイル名を指定してダウンロードするよ。

左を向いているペンギンみたいなキャラクター、ナックス

46.ファイル名を指定してダウンロードしてみる

ナックス「こんにちは。画像収集するシェルスクリプトを作ってみたい。今回は第11回」

ナックス「今までの回を通して、多分みんな思ってたことだと思うけど」

ナックス「ダウンロードできた後のファイル名が気持ち悪くない?」

デビー君「気持ち悪い」

ナックス「そうですよね。私の場合は『公式壁紙』っていう検索キーワードを使ってるんだけど、ファイル名が『imagesearch.php?q=公式壁紙&page=1』だしね」

ナックス「なんか調べたらwgetに-Oオプションを使うことでファイル名を指定できるらしいよ」

ナックス「例えば『wget -O 好きな名前のファイル名 "ダウンロードするファイル"』みたいにすると好きな名前のファイル名でダウンロードできるらしい」

wget -O 好きな名前のファイル名 "ダウンロードするファイル"

ナックス「というわけで、前回(45.シェルスクリプトとはコマンドをまとめて書いたもの)作ったファイルを書き換えて、abcっていう名前でファイルをダウンロードするようにしてみよう」

デビー君「はーい」

ナックス「まずcui環境を立ち上げたら『cd imagework』とコマンドを打って45.シェルスクリプトとはコマンドをまとめて書いたもので作成したディレクトリ、imageworkに移動しよう」

$ cd imagework/

ナックス「次に『nano imageget.sh』とコマンドを打ってnanoでimageget.shファイルを編集しよう」

$ nano imageget.sh

ナックス「そして、2行目のコードに『-O abc』(ハイフン オー エービーシー)を書き加えて、以下のような内容にしよう」

#!/bin/sh
wget -O abc "https://linuxgerira.com/imagesearch.php?q=%E5%85%AC%E5%BC%8F%E5%A3%81%E7%B4%99&page=1"

nanoを起動して-O abcを書き加える

ナックス「書き加えたらCtrlキーを押しながらOキーを押して、Enterキーを押して保存し、Ctrlキーを押しながらXキーを押してnanoを終了してください」

ナックス「実行権限に関しては前回の45.シェルスクリプトとはコマンドをまとめて書いたもので既に付与しているので、再度実行権限をつける必要はありません」

ナックス「『./imageget.sh』とコマンドを打ってシェルスクリプトを実行してください」

$ ./imageget.sh

ナックス「『ls』とコマンドを打って、abcという名前でファイルがダウンロードできているか確認してください」

$ ls

デビー君「お、できてる」

ナックス「abcという名前のファイルの中身と、45.シェルスクリプトとはコマンドをまとめて書いたものでダウンロードした『imagesearch.php?q=公式壁紙&page=1』みたいなファイル名のファイルの中身は(検索結果が変わっていないなら)同じ内容のファイルです。余裕があればnanoでそれぞれのファイルを開いて中身をざっくり確認してみてください」

ナックス「今回打ったコマンドはざっくり以下の画像に載せてます。画像をクリックしたら大きくして見れるよ」

今回打ったコマンド

ナックス「というわけで次回、47.ダウンロードしたファイルの中身を端末(コンソール)に表示する