برنامه دریافت فایل GNU Wget

این برنامه یک ابزار رایگان برای دریافت فایل از اینترنت در محیط متنی میباشد . این برنامه از پروتکل های HTTP، HTTPS و FTP پشتیبانی میکند و همچنین سازگار با سرویس دهنده های پراکسی است .

Wget این قابلیت را دارد که در پس زمینه، در حالی که کاربر در سیستم وارد نشده است، به فعالیت بپردازد. به این ترتیب میتوانید دریافت فایل را شروع کرده و از سیستم خارج شوید. Wget تا اتمام کار، به فعالیت خود ادامه خواهد داد. این قابلیت برای دانلود کردن فایلهای بزرگ که ساعتهای زیادی طول میکشند، مفید است.



 

Wget میتواند لینکهای موجود در سایتهای وب را دنبال کرده و نسخه های محلی سایتتهای وب را ایجاد نماید و ساختار دایرکتوری آنها را در کامپیوترتان ایجاد نماید . به این عملیات اصطلاحا دانلود بازگشتی یا Recursive downloading اطلاق میشود. همچنین Wget میتواند لینکهای موجود در سایت وب را طوری تغییر دهد که سایت را بتوان بصورت Offline در کامپیوتر مشاهده نمود .

Wget برای عملکرد روی خطوط آهسته و ناپایدار اتصال به اینترنت طراحی شده است . در صورتی که اتصال شما دائما قطع میشود، ویا بدلیل بزرگ بودن فایل مجبور به قطع مداوم اتصال هستید، Wget میتواند پس از اتصال مجدد ادامه فایل را برای شما دریافت نماید. Wget برنامه بسیار قابل اطمینانی است. در بدترین شرایط، امکان ندارد که یک فایل را بصورت خراب دانلود کند، حتی اگر اتصال شما صدها بار قطع شده باشد.

برای یادگیری کامل این برنامه نیاز دارید تا مستندات آنرا به تایپ دستور man wget مطالعه نمایید. این مستندات حدود ۲۰ صفحه بوده و کلیه گزینه های این برنامه را توضیح داده است. این راهنما نیز با استفاده از این مستندات نوشته شده است. در اینجا برای آشنایی شما با کاربرد این برنامه، برخی گزینه های مهم را به همراه مثال شرح میدهم :


 

    - استفاده ساده : در حالت عادی برای دریافت یک فایل، باید پس از دستور wget، آدرس URL فایل مربوطه را وارد نمایید. برای این کار، با استفاده از مرورگر خود، URL کامل فایل مربوطه را کپی کرده و در پنجره ترمینال، جلوی دستور Paste نمایید. در صورتی که قبلا در حال دریافت فایلی بوده اید و دریافت آن به دلایلی نیمه کاره مانده و مایل به دریافت ادامه فایل هستید، میتوانید از سوئیچ c برای این کار استفاده کنید. به دو مثال زیر توجه کنید :

$ wget http://www.redhat.com/download/kernel-2.4-20.K7.rpm

$ wget -c http://www.redhat.com/download/kernel-2.4-20.K7.rpm

در مثال اول، wget شروع به دریافت فایلی را که در جلوی آن تعیین شده است، خواهد کرد. در مثال دوم، در صورتی که این فایل قبلا به صورت ناقص دریافت شده است، ادامه آنرا دریافت خواهد کرد. برنامه wget به صورت پیش گزیده و خودکار، در صورت قطع اتصال به هر دلیل، ۲۰ بار عملیات دریافت را تکرار خواهد کرد. در صورتی که احساس میکنید این تعداد ممکن است برای اتصال کند و ناپایدار شما کم باشد، با استفاده از سوئیچ t میتوانید تعداد آنرا تعیین کنید . به مثال زیر توجه کنید :

$ wget -t 45 http://www.redhat.com/download/kernel-2.4-20.K7.rpm

در مثال بالا، برنامه wget، در صورت قطع اتصال، ۴۵ بار مجددا به سرویس دهنده متصل شده و دریافت را تمام خواهد کرد . در صورتی که چنین اتصالی دارید، توصیه میشود تا حتما سوئیچ c را هم بکار ببرید تا فایل از ادامه دریافت شود .

همانطور که گفتم، یکی از قابلیت های برنامه wget، قابلیت اجرای آن در پس زمینه است. برای اجرای آن در پس زمینه، کافی است از دستور زیر استفاده کنید :

$ wget -t 45 -o log http://www.redhat.com/download/kernel-2.4-20.K7.rpm &

در مثال بالا، برنامه wget در حالت پس زمینه اجرا شده و عملیات آن در فایل ثبتی به نام log ثبت میشود.

 

    - استفاده پیشرفته : در صورتی که یک فایل حاوی URL کامل فایلهایی که نیاز دارید دانلود شوند دارید، میتوانید با استفاده از گزینه i از آن استفاده کنید:

$ wget -i | myFile

در مثال بالا، برنامه wget، آدرسهای مورد نیاز خود را از فایل myFile خواهد خواند. قبلا گفتم که wget میتواند یک سایت وب کامل را برای شما دانلود کرده و در کامپیوترتان ذخیره کند. برای دریافت کامل یک سایت وب، باید دستور زیر را وارد نمایید :

$ wget -r http://www.gnu.org/ -o gnulog

در این مثال، برنامه wget، نسخه ای از سایت وب gnu.org را با عمق ۵ دایرکتوری و همان ساختار دایرکتوری استفاده شده در سایت، دریافت کرده و عملیات را در فایل gnulog ذخیره خواهد کرد. در صورتی که مایل هستید، لینکهای فایلهای HTML طوری تبدیل شود تا در کامپیوتر خودتان و در حالت Offline بتوانید آنها را مرور کنید، از گزینه زیر استفاده کنید :

$ wget --convert-links -r http://www.gnu.org/ -o gnulog

در صورتی که بخواهید فقط محتویات یک دایرکتوری حاوی فایلهای خاص را دریافت کنید نیز، wget این امکان را به شما اعطا میکند . به مثال زیر توجه کنید :

$ wget -r -l1 -A.png http://www.gnu.org/images/
 

در این مثال، wget با عمق یک دایرکتوری، تمام فایلهای png موجود در دایرکتوری مربوطه را دریافت خواهد کرد. در صورتی که هنگام دانلود ساختار یک سایت، اتصال قطع شود، برای ادامه باید از گزینه nc استفاده کنید:

$ wget -nc -r http://www.gnu.org
 

بصورت کلی، برنامه wget برنامه ای بسیار قدرتمند و انعطاف پذیر بوده و کلیه نیازهای دریافت فایل شما را پوشش خواهد داد.