wgetコマンドでワイルドカードを使ってダウンロードするファイルを指定する方法
目次
スポンサードリンク
wgetコマンドの基本構文
wgetコマンドはインターネットから、htmlファイルや画像などのコンテンツをダウンロードする際に使用するコマンドです。 基本構文は以下です。コマンドの後にオプション、ダウンロード対象のURLと続けます。
wget [オプション] [URL]
ワイルドカードを使ってダウンロードするファイルを指定する方法
wgetにはダウンロードするコンテンツの拡張子を指定する -A オプション(–accept)があります。 -A jpg,png のように、ダウンロードしたいファイルの拡張子をカンマ区切りで指定することができます。
このオプションでは、ワイルドカードを指定することができ、ワイルドカード文字 *、?、[ または ] があると、拡張子ではなくファイル名のパターンを指定したことになります。
以下のサンプルは、当ブログのトップページから再帰的にコンテンツを取得し、-A オプションで ファイル名に linux という文字を含むコンテンツのみを取得しています。
[root@hostname tmp]# wget -r -A *linux* https://uchy.me/blog/
llコマンドで取得できたコンテンツを見てみると、ファイル名にlinuxが含まれているサムネイル画像のみが取得できていることがわかります。この例では階層ごとにディレクトリが作られていますが、-nd(–no-directories)オプションを指定するとディレクトリを作らずにすべてのファイルがカレントディレクトリに保存されます。
[root@hostname tmp]# ll uchy.me/*/*/*/
uchy.me/blog/images/thumb/:
total 120
-rw-r--r-- 1 root root 20876 Apr 23 23:24 thumb-linux-apache.svg
-rw-r--r-- 1 root root 23290 Apr 15 17:53 thumb-linux-command.svg
-rw-r--r-- 1 root root 15435 Nov 28 2021 thumb-linux-imagemagick.svg
-rw-r--r-- 1 root root 5847 Mar 9 12:30 thumb-linux-ls.svg
-rw-r--r-- 1 root root 11988 Mar 19 18:38 thumb-linux-php-gd.svg
-rw-r--r-- 1 root root 21420 Apr 15 17:55 thumb-linux-shell.svg
-rw-r--r-- 1 root root 9119 Nov 28 2021 thumb-linux-watch.svg
ワイルドカードを使ってダウンロードしないファイルを指定する方法
-A とは逆に、-R オプション(–reject)を指定すると、ダウンロードしないコンテンツを指定することができます。 -A と同様に、通常は拡張子を指定しますが、ワイルドカード文字列が含まれる場合はパターンマッチングとして動作します。
[root@hostname tmp]# wget -r -R *linux* https://uchy.me/blog/
Linuxコマンドについて学べるおすすめ書籍
Linuxコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。
Linux教科書 図解でパッとわかる LPIC/LinuC
はじめてLPICを受ける方向け、手を動かしながらLinuxについて学びたい方におすすめ。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。
Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】
Search
Recent Posts
- カーネル更新やパッケージのパッチ適用後、OSの再起動が必要か確認するLinuxコマンド(needs-restarting)
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法