Thủ thuật nhỏ với wget

wget là công cụ download dòng lệnh được ưa thích và phổ biến trong giới nix. wget cũng đã có những front-end GUI (như gnome-wget trên Ubuntu) nhưng dòng lệnh vẫn được chuộng hơn (từ newbie đến gurus). Sau này có Download for X với giao diện cool nhưng mình vẫn thích sự đơn sơ và gọn của wget (đơn giản chỉ vì mình có thể dùng wget trên cả Ubuntu và Mac OS X ;)).

Tuy nhiên, có một vấn đề nhỏ với wget là mình gặp phải và ghi nhận lại như một kinh nghiệm nhỏ chia sẻ với bà con. Khi dùng wget để lấy một file mà URL không phải direct link (nghĩa là phải thông qua từ 1..n link để đến được file cần lấy), ví dụ:

URL=http://www.abc.com/myfile.php?fileid=a_file_id&referer=xyz.com

Lệnh gọi wget sẽ là:

$ wget http://www.abc.com/myfile.php?fileid=a_file_id&referer=xyz.com

Điều gì xảy ra ở đây?

wget chỉ downloads file “myfile.php”, và… (quan trọng nhất là) wget chạy ở chế độ nền (background). Ặc, sao thế nhỉ? Sau một hồi thử tới thử lui và săm soi, tưởng là bug của wget hoặc URL sai, nhưng cuối cùng phát hiện ra là do cả hai và do shell nữa, nhưng không có ai sai hết. Trong shell của NIX (bash, csh), khi sử dụng kí hiệu ‘&’ ở cuối một lệnh sẽ có ý nghĩ là bắt lệnh đó chạy ở chế độ nền. Và cái URL dễ thương vô tội đã bị chú wget hiểu nhầm vì trong URL có dấu &. Giải pháp cho vấn đề này là dùng dấu nháy đơn (single quote) bao đóng trọn URL để anh shell không phiên dịch và suy diễn linh tinh về cái URL của mình.

$ wget ‘http://www.abc.com/myfile.php?fileid=a_file_id&referer=xyz.com’

Bingo!

About Huy Trần

Just a lazy member of the blogosphere.
This entry was posted in Linux. Bookmark the permalink.

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s