برنامه دريافت فايل 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.gif http://www.gnu.org/images/

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

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

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