
Ubuntu日本語フォーラム

ログインしていません。
wgetコマンドを使用して、ウェブサイトからhtmlファイルを取得したいと考えています。
wgetコマンドについて質問します。wget -r -l1 http://example.com
と端末に入力し実行した際、
カレントディレクトリにexample.comというディレクトリが作成され、
作成されたexample.comの中にhttp://example.comのhtmlファイルが入るようになると思うのですが、
カレントディレクトリに作成されるディレクトリを example.com ではなく、
wgetコマンドを実行した「年_月_日_時間:分:秒+文字」
にするにはどのようにコマンドを実行すればいいでしょうか。
オプションの -r と -l1 を使ったままでそのようなことは可能でしょうか。
(例)2016年の05月30日の21:30:00に実行した際、
カレントディレクトリに 2016_05_30_20:30:00_田中
という感じです。
_田中 は文字の部分です。
さらに、これをシェルスクリプトで書くとしたらどのようになりますか。
また、私が勘違いしている点がありましたらご指摘おねがいします。
環境はubuntu15.10のbashを使用しています。
初心者のため質問に不明な部分があるかもしれませんが、どなたかご回答よろしくお願いします。
オフライン
#!/bin/bash
if [ $# -ne 1 ]; then
myname=$(basename $0)
echo "usage: $myname {postfix}" 1>&2
exit 1
fi
dest_dir=$(date "+%Y_%m_%d_%H:%M:%S")_$1
wget -q -r -l 1 -nH -P ${dest_dir} http://www.example.com/$ ./hogehoge 田中
みたいな?
オフライン
favicon.icoさん
はじめまして。
素早くご回答いただきありがとうございます。
早速実行してみようとしたのですが、
私には少し難しかったため、うまくできませんでした。
やったことを書きますので、間違っている部分や問題点があればご指導よろしくお願いします。
~/Desktopに/hogeディレクトリを作成しました。
/hogeディレクトリに移動して、
hogehoge.shという名前で
if [ $# -ne 1 ]; then
myname=$(basename $0)
echo "usage: $myname {postfix}" 1>&2
exit 1
fi
dest_dir=$(date "+%Y_%m_%d_%H:%M:%S")_$1
wget -q -r -l 1 -nH -P ${dest_dir} http://www.example.com/
と入力し保存、
hogehoge.shがあることを確認し、
chmod +x hogehoge.shで実行できるようにし、
./hogehoge.sh
とだけ入力した時は
usage: hogehoge.sh {postfix}
と表示されますが、
./hogehoge.sh 田中
でEnterキーを押すと
カーソルが次の行に行き
点滅しました
Ctrl+Cで中止し、
hogeディレクトリ(カレントディレクトリ)の中身
を確認したところ
hogehoge.sh
がありました。
hogehoge.sh によって作成されたディレクトリはどこにあるのでしょうか?
図々しいお願いですが、
コードにコメント文をつけていただけるとありがたいです。
hogehoge.sh実行に田中を引数に使っているようになっていると思うのですがこの解釈で大丈夫でしょうか?
田中を引数に使わず
./hogehoge.sh
だけで
2016_05_30_20:30:00_田中ディレクトリを作成し
その中にhtmlを保存するにはコードをどのように変更すればいいでしょうか?
また、wgetコマンド1行だけで済ませるとしたらどのように入力すればいいでしょうか?
環境はubuntu15.10です。
長文大変失礼しました。
何卒よろしくお願いします。
オフライン
提示のスクリプトを何も考えずにコピペしました?
それだと存在しない http://www.example.com/ からダウンロードしようとして、タイムアウトまで無反応になります。
スクリプトにせず1行で済ますなら、これでいいはず。
「田中」のところはディレクトリ名として有効な文字列であれば好きに変えてかまいません。
また http://www.example.com/ は実在の URL に変えてください。
wget -q -r -l 1 -nH -P "$(date '+%Y_%m_%d_%H:%M:%S')_田中" http://www.example.com/
オフライン
ryさん
大変勉強になりました。
ありがとうございます。
おっしゃるとおり、コピペしていました。
タイムアウトまで無反応になることは知りませんでした。
実在するURLに変更したところ、スクリプト、コマンド両方ともうまく行きました。
別のパソコンでスクリプト、コマンドを
http://www.example.com/
で実行したところ、すぐに反応したので不思議に思っていました。
なぜでしょう…。
パソコンの性能によるものなのでしょうか?
どなたかご存知の方がいらっしゃったらご教授ください。
よろしくお願いいたします。
オフライン
投稿後、読んでいたところ、分かりにくかったため
補足いたします。
実行したコマンドは
ryさん による投稿:
wget -q -r -l 1 -nH -P "$(date '+%Y_%m_%d_%H:%M:%S')_田中" http://www.example.com/
で実行したスクリプトは
favicon.icoさん による投稿:
コード:
#!/bin/bash if [ $# -ne 1 ]; then myname=$(basename $0) echo "usage: $myname {postfix}" 1>&2 exit 1 fi dest_dir=$(date "+%Y_%m_%d_%H:%M:%S")_$1 wget -q -r -l 1 -nH -P ${dest_dir} http://www.example.com/
です。
どちらとも
年_月_日_時間:分:秒_田中
ディレクトリが作られ、
中身に
index.html
が作成されました。
オフライン