| WGET(1) | دستورات عمومی کاربر | WGET(1) |
نام (NAME)
wget - ابزار دریافت و دانلود غیرتعاملی فایلها از شبکه
خلاصه دستور (SYNOPSIS)
wget [گزینهها]... [نشانی_وب]...
توضیحات (DESCRIPTION)
ابزار GNU Wget یک نرمافزار آزاد برای دانلود غیرتعاملی فایلها از وب است. این ابزار از پروتکلهای HTTP، HTTPS و FTP، و همچنین دریافت از طریق پراکسیهای HTTP پشتیبانی میکند.
ابزار Wget به صورت غیرتعاملی کار میکند، به این معنی که میتواند در پسزمینه و حتی زمانی که کاربر به سیستم وارد نشده است به فعالیت خود ادامه دهد. این ویژگی به شما امکان میدهد تا فرآیند دریافت را آغاز کرده و اتصال خود را از سیستم قطع کنید و ادامه کار را به Wget بسپارید. در مقابل، اکثر مرورگرهای وب نیازمند حضور مداوم کاربر هستند که این امر در هنگام انتقال حجم بالایی از دادهها میتواند بسیار دستوپاگیر باشد.
ابزار Wget میتواند پیوندهای درون صفحات HTML، XHTML و CSS را دنبال کند تا نسخههای محلی از وبسایتهای دوردست بسازد و ساختار دایرکتوریهای سایت اصلی را به طور کامل بازسازی کند. این قابلیت گاهی تحت عنوان «دانلود بازگشتی» شناخته میشود. در طول این فرآیند، Wget به استاندارد ممانعت رباتها (/robots.txt) پایبند است. همچنین میتوان به Wget دستور داد تا پیوندهای فایلهای دانلودشده را به فایلهای محلی تغییر دهد تا امکان مشاهده آفلاین فراهم گردد.
ابزار Wget به منظور پایداری بالا بر روی اتصالات شبکهای کند یا ناپایدار طراحی شده است؛ چنانچه دانلود به علت مشکل شبکه با شکست مواجه شود، Wget تا زمان دریافت کامل فایل به تلاش مجدد ادامه خواهد داد. اگر سرور از قابلیت ادامه دریافت پشتیبانی کند، Wget به سرور اعلام میکند که دانلود را از نقطهای که متوقف شده بود ادامه دهد.
گزینهها (OPTIONS)
نحو گزینهها (Option Syntax)
از آنجا که Wget از تابع getopt گنو برای پردازش آرگومانهای خط فرمان استفاده میکند، هر گزینه علاوه بر فرم کوتاه، یک فرم بلند نیز دارد. به خاطر سپردن گزینههای بلند آسانتر است، اما تایپ آنها زمان بیشتری میبرد. شما میتوانید سبکهای مختلف گزینهها را آزادانه با یکدیگر ترکیب کنید، یا گزینهها را پس از آرگومانهای خط فرمان مشخص نمایید. به عنوان مثال میتوانید بنویسید:
wget -r --tries=10 http://fly.srk.fer.hr -o log
فاصله میان گزینهای که آرگومان میپذیرد و خودِ آرگومان را میتوان حذف کرد. به جای -o log میتوانید بنویسید -olog.
همچنین میتوانید چند گزینه بدون آرگومان را با یکدیگر ترکیب کنید، مانند:
wget -drc <URL>
که کاملاً معادل دستور زیر است:
wget -d -r -c <URL>
از آنجا که گزینهها را میتوان پس از آرگومانها نیز درج کرد، برای پایان دادن به پردازش گزینهها میتوانید از -- استفاده کنید. بنابراین دستور زیر تلاش میکند تا نشانی -x را دانلود کرده و گزارش شکست را در log ثبت کند:
wget -o log -- -x
گزینههایی که فهرستی با جداکننده کاما را میپذیرند، همگی از این قاعده پیروی میکنند که تعیین یک فهرست خالی مقدار آن را پاک میکند. این ویژگی برای پاکسازی تنظیمات فایل .wgetrc مفید است. برای نمونه، اگر در فایل .wgetrc شما مقدار "exclude_directories" بر روی /cgi-bin تنظیم شده باشد، مثال زیر ابتدا آن را بازنشانی کرده و سپس آن را برای استثنا کردن /~nobody و /~somebody مقداردهی میکند. همچنین میتوانید فهرستهای موجود در .wgetrc را پاک کنید.
wget -X "" -X /~nobody,/~somebody
بیشتر گزینههایی که آرگومان نمیپذیرند، گزینههای بولی (boolean) هستند؛ این نامگذاری از آن جهت است که وضعیت آنها با یک متغیر بله/خیر (بولی) تعیین میشود. برای نمونه، گزینه --follow-ftp به Wget دستور میدهد که پیوندهای FTP را از فایلهای HTML دنبال کند، و از سوی دیگر، گزینه --no-glob دستور میدهد که بسط نام فایل (globbing) را بر روی نشانیهای FTP اعمال نکند. یک گزینه بولی یا ایجابی است یا سلبی (که با --no آغاز میشود). تمامی این گزینهها در چند ویژگی مشترک هستند.
مگر آنکه خلاف آن قید شده باشد، فرض بر این است که رفتار پیشفرض مخالف کاری است که گزینه انجام میدهد. به عنوان مثال، وجود مستندشده گزینه --follow-ftp به این معناست که رفتار پیشفرض، عدم دنبال کردن پیوندهای FTP از صفحات HTML است.
گزینههای ایجابی را میتوان با افزودن پیشوند --no- به نام گزینه نقیض کرد؛ گزینههای سلبی را نیز میتوان با حذف پیشوند --no- نقیض نمود. ممکن است این کار بیهوده به نظر برسد؛ اگر پیشفرض یک گزینه ایجابی انجام ندادن کاری است، چرا باید روشی برای غیرفعالسازی صریح آن ارائه شود؟ دلیل این است که فایل پیکربندی راهاندازی ممکن است پیشفرض را تغییر داده باشد. برای نمونه، استفاده از "follow_ftp = on" در فایل .wgetrc باعث میشود Wget به طور پیشفرض پیوندهای FTP را دنبال کند، و استفاده از --no-follow-ftp تنها راه بازگرداندن رفتار پیشفرض کارخانه از طریق خط فرمان خواهد بود.
گزینههای پایهای راهاندازی (Basic Startup Options)
- -V
- --version
- نمایش نسخه Wget.
- -h
- --help
- چاپ پیام راهنما شامل توضیحات تمامی گزینههای خط فرمان Wget.
- -b
- --background
- انتقال فوری به پسزمینه پس از راهاندازی. اگر هیچ فایل خروجی با استفاده از گزینه -o مشخص نشده باشد، خروجی به فایل wget-log هدایت خواهد شد.
- -e command
- --execute command
- اجرای دستور به گونهای که گویی بخشی از فایل .wgetrc است. دستوری که بدین شکل فراخوانی شود پس از دستورات موجود در .wgetrc اجرا خواهد شد و در نتیجه اولویت بالاتری نسبت به آنها خواهد داشت. در صورتی که نیاز به تعیین بیش از یک دستور wgetrc دارید، از چندین مورد گزینه -e استفاده کنید.
گزینههای لاگبرداری و فایل ورودی (Logging and Input File Options)
- -o logfile
- --output-file=logfile
- ثبت تمامی پیامها در logfile. پیامها معمولاً به خروجی خطای استاندارد ارسال میشوند.
- -a logfile
- --append-output=logfile
- الحاق پیامها به انتهای logfile. این گزینه عملکردی مشابه -o دارد، با این تفاوت که به جای بازنویسی فایل لاگ قبلی، گزارشها را به انتهای آن میافزاید. اگر logfile وجود نداشته باشد، یک فایل تازه ایجاد میشود.
- -d
- --debug
- فعالسازی خروجی اشکالزدایی (دیباگ)، حاوی اطلاعات گوناگونی که در صورت کارکرد نادرست Wget برای توسعهدهندگان آن مفید است. ممکن است مدیر سیستم شما Wget را بدون پشتیبانی از اشکالزدایی کامپایل کرده باشد، که در این صورت گزینه -d عمل نخواهد کرد. لطفاً توجه داشته باشید که کامپایل با پشتیبانی از اشکالزدایی همواره بیخطر است؛ Wget کامپایلشده با پشتیبانی اشکالزدایی هیچ دادهای را چاپ نخواهد کرد مگر آنکه صریحاً با گزینه -d درخواست شده باشد.
- -q
- --quiet
- خاموش کردن خروجی Wget (حالت کاملاً بیصدا).
- -v
- --verbose
- فعال کردن خروجی پرجزئیات همراه با تمامی دادههای در دسترس. حالت پیشفرض خروجی پرجزئیات است.
- -nv
- --no-verbose
- غیرفعال کردن حالت پرجزئیات بدون آنکه خروجی کاملاً بیصدا شود (برای این منظور از -q استفاده کنید)؛ بدین ترتیب پیامهای خطا و اطلاعات پایه همچنان نمایش داده میشوند.
- --report-speed=type
- نمایش پهنای باند بر حسب type. تنها مقدار قابل قبول bits است.
- -i file
- --input-file=file
- خواندن
نشانیهای
وب از یک file
محلی یا
خارجی. اگر
- به عنوان
file تعیین
شود،
نشانیها
از ورودی
استاندارد
خوانده
میشوند.
(برای
خواندن از
فایلی که
نام آن
دقیقاً -
است، از ./-
استفاده
کنید.)
در صورت استفاده از این تابع، نیازی به وارد کردن نشانی در خط فرمان نیست. چنانچه هم در خط فرمان و هم در فایل ورودی نشانی مشخص شده باشد، ابتدا نشانیهای خط فرمان دریافت خواهند شد. اگر گزینه --force-html مشخص نشده باشد، file باید شامل فهرستی از نشانیها باشد، در هر خط یک نشانی.
با این حال، اگر گزینه --force-html را مشخص کنید، سند به عنوان html تفسیر میشود. در این حالت ممکن است با پیوندهای نسبی به مشکل برخورد کنید، که میتوانید آن را با افزودن تگ "<base href="url">" به اسناد یا تعیین --base=url در خط فرمان برطرف سازید.
اگر file یک فایل خارجی باشد و Content-Type آن با text/html مطابقت کند، سند به طور خودکار به عنوان html مدیریت خواهد شد. علاوه بر این، در صورت عدم تعیین، موقعیت فایل به طور ضمنی به عنوان base href در نظر گرفته خواهد شد.
اگر file یک فایل محلی باشد، در سیستمهایی که پشتیبانی میکنند، با فلگ "O_NONBLOCK" باز خواهد شد تا خواندن غیرمسدودکننده فراهم شود. ابزار Wget تلاش میکند تا زمان رسیدن به انتهای فایل (EOF) یا بسته شدن آن، به خواندن ادامه دهد. این امر اجازه میدهد فهرستی از فایلها برای دانلود به صورت جریانی (Stream) ارسال شود، جایی که این فهرست در طول اجرای فرآیند به صورت پویا تولید میگردد. در حال حاضر، این ویژگی در سیستمعاملهای ویندوز پشتیبانی نمیشود.
- --input-metalink=file
- دانلود فایلهای معرفیشده در file محلی متالینک (Metalink). نسخههای ۳ و ۴ متالینک پشتیبانی میشوند.
- --keep-badhash
- نگهداشتن فایلهای متالینک دانلودشده با هش نامعتبر (bad hash). این گزینه پسوند .badhash را به نام فایلهای متالینکی که با خطای تطابق چکسام روبرو شدهاند اضافه میکند، بدون آنکه فایلهای موجود بازنویسی شوند.
- --metalink-over-http
- ارسال درخواست HTTP HEAD به جای GET و استخراج فرادادههای متالینک از هدرهای پاسخ. سپس به حالت دانلود متالینک سوئیچ میکند. اگر فراداده معتبر متالینک یافت نشود، به دانلود عادی HTTP بازمیگردد. دانلود و پردازش فایلهای Content-Type: application/metalink4+xml را فعال میسازد.
- --metalink-index=number
- تنظیم شماره ترتیبی metaurl برای متالینک با قالب application/metalink4+xml. مقداری بین ۱ تا کل موارد موجود از "application/metalink4+xml". برای انتخاب اولین مورد مناسب، مقدار 0 یا inf را تعیین کنید. نشانیهای metaurl (مانند موارد حاصل از --metalink-over-http) ممکن است بر اساس ارزش کلید اولویت مرتب شده باشند؛ این نکته را هنگام انتخاب شماره مناسب مد نظر قرار دهید.
- --preferred-location
- تعیین موقعیت مکانی ارجح برای منابع متالینک. این گزینه در صورتی موثر است که چندین منبع با اولویت یکسان موجود باشند.
- --xattr
- فعالسازی
استفاده از
مشخصههای
گسترشیافته
سیستم فایل
(extended attributes) جهت
ذخیره
نشانی وب
اصلی و
مقدار هدر HTTP
Referer در صورت
استفاده.
توجه داشته باشید که نشانی وب ممکن است حاوی اطلاعات محرمانه نظیر توکنهای دسترسی یا اطلاعات هویتی باشد.
- -F
- --force-html
- هنگامی که ورودی از یک فایل خوانده میشود، پردازش آن به عنوان فایل HTML را اجباری میکند. این کار به شما امکان میدهد تا با افزودن "<base href="url">" به HTML یا استفاده از گزینه خط فرمان --base، پیوندهای نسبی را از فایلهای HTML موجود بر روی دیسک محلی دریافت کنید.
- -B URL
- --base=URL
- هنگام
خواندن
پیوندها از
یک فایل HTML
تعیینشده
با گزینه
-i/--input-file (به
همراه --force-html
یا هنگامی
که فایل
ورودی از یک
سرور با
عنوان HTML
دریافت شده
باشد)،
پیوندهای
نسبی را با
مبنا قرار
دادن URL
بازگشایی و
حل میکند.
این عمل
معادل وجود
تگ "BASE" در
فایل HTML
ورودی با
مقدار URL
برای مشخصه
"href" است.
برای مثال، اگر http://foo/bar/a.html را برای URL تعیین کنید و Wget عبارت ../baz/b.html را از فایل ورودی بخواند، آن را به http://foo/baz/b.html تبدیل میکند.
- --config=FILE
- تعیین مسیر فایل پیکربندی راهاندازی که میخواهید به جای فایل(های) پیشفرض استفاده کنید. از --no-config برای غیرفعال کردن خواندن فایلهای پیکربندی استفاده کنید. در صورت ارائه همزمان --config و --no-config، گزینه --no-config نادیده گرفته میشود.
- --rejected-log=logfile
- ثبت تمامی نشانیهای وب ردشده در logfile در قالب مقادیر جداشده با کاما (CSV). این مقادیر شامل دلیل رد شدن، نشانی وب، و نشانی وب والدی است که در آن پیدا شده بود.
گزینههای دانلود (Download Options)
- --bind-address=ADDRESS
- هنگام برقراری اتصالات کلاینت TCP/IP، به ADDRESS در سیستم محلی متصل (bind) میشود. مقدار ADDRESS میتواند به عنوان نام میزبان یا نشانی IP مشخص شود. این گزینه زمانی سودمند است که سیستم شما به چندین نشانی IP متصل باشد.
- --bind-dns-address=ADDRESS
- [فقط با libcares] این نشانی مسیر درخواستهای DNS را بازنویسی (override) میکند. در صورتی که نیاز به دور زدن تنظیمات استاندارد /etc/resolv.conf داشته باشید، این گزینه در کنار --dns-servers راهگشای شما خواهد بود. مقدار ADDRESS باید به صورت یک نشانی IPv4 یا IPv6 تعیین گردد. برای دسترسی به این گزینه، Wget باید با libcares کامپایل شده باشد.
- --dns-servers=ADDRESSES
- [فقط با libcares] نشانی(های) دادهشده جایگزین نشانیهای استاندارد کارساز نام (nameserver)، مانند تنظیمات پیکربندیشده در /etc/resolv.conf میشوند. مقادیر ADDRESSES میتوانند به عنوان نشانیهای IPv4 یا IPv6 جداشده با کاما مشخص شوند. برای در دسترس بودن این گزینه، Wget باید همراه با libcares ساخته شده باشد.
- -t number
- --tries=number
- تنظیم تعداد دفعات تلاش بر روی number. مقدار 0 یا inf را برای تلاش نامحدود وارد کنید. پیشفرض ۲۰ بار تلاش مجدد است، به استثنای خطاهای غیرقابل بازگشت مانند «اتصال رد شد» (connection refused) یا «یافت نشد» (404) که تلاش مجدد برای آنها صورت نمیگیرد.
- -O file
- --output-document=file
- اسناد در
فایلهای
مربوط به
خود نوشته
نمیشوند،
بلکه همگی
با هم تجمیع
شده و در file
نوشته
خواهند شد.
اگر - به
عنوان file
مشخص شود،
اسناد در
خروجی
استاندارد
چاپ شده و
تبدیل
پیوندها
غیرفعال
میگردد.
(برای ارسال
به فایلی که
نام آن
دقیقاً -
است از ./-
استفاده
کنید.)
کاربرد -O صرفاً به معنای «استفاده از نام file به جای نام موجود در نشانی اینترنتی» نیست؛ بلکه مشابه تغییر مسیر (redirection) در پوسته عمل میکند: دستور wget -O file http://foo دقیقاً مشابه wget -O - http://foo > file عمل خواهد کرد؛ فایل file بلافاصله خالی و بازنویسی میشود و تمامی محتوای دانلودشده در آن نوشته خواهد شد.
به همین دلیل، گزینه -N (بررسی برچسب زمانی) در ترکیب با -O پشتیبانی نمیشود: از آنجا که file همواره تازه ایجاد میشود، همیشه یک برچسب زمانی کاملاً جدید خواهد داشت. در صورت استفاده از این ترکیب هشداری صادر میشود.
به طور مشابه، استفاده از -r یا -p همراه با -O ممکن است مطابق انتظار شما عمل نکند: Wget فقط فایل نخست را در file نمینویسد تا بقیه را با نامهای معمول دانلود کند، بلکه تمام محتوای دانلودشده درون file ریخته خواهد شد. این رفتار در نگارش 1.11 غیرفعال شد، اما در نگارش 1.11.2 (همراه با یک هشدار) مجدداً اضافه گردید، چرا که در مواردی این شیوه کاربرد دارد.
ترکیب با -nc تنها زمانی پذیرفته میشود که فایل خروجی دادهشده از قبل وجود نداشته باشد.
توجه فرمایید که ترکیب با -k تنها هنگام دانلود یک سند منفرد مجاز است، زیرا در این حالت صرفاً پیوندهای نسبی را به پیوندهای خارجی تبدیل میکند؛ کاربرد -k برای نشانیهای متعدد زمانی که همگی در یک فایل واحد بارگیری میشوند بیمعنی است؛ -k تنها در حالتی قابل استفاده است که خروجی یک فایل معمولی باشد.
- -nc
- --no-clobber
- اگر فایلی
بیش از یک
بار در همان
دایرکتوری
دانلود
شود، رفتار
Wget به چند
گزینه از
جمله -nc
وابسته است.
در شرایط
خاص، فایل
محلی با
دانلود
مکرر
رونویسی (clobbered)
خواهد شد.
در حالات
دیگر حفظ
میشود.
هنگام اجرای Wget بدون گزینههای -N، -nc، -r، یا -p، دانلود مجدد همان فایل در دایرکتوری یکسان باعث حفظ نسخه اصلی file و نامگذاری نسخه دوم به نام file.1 میشود. در صورت دانلود مجدد، نسخه سوم به نام file.2 نامگذاری خواهد شد و به همین ترتیب. (این رفتار با -nd نیز رخ میدهد، حتی اگر -r یا -p فعال باشند.) هنگامی که -nc تعیین شود، این رفتار متوقف شده و Wget از دانلود نسخههای جدیدتر file سر باز میزند. بنابراین، اصطلاح ""no-clobber"" در این حالت تا حدی نادقیق است؛ چرا که مانع بازنویسی نمیشود (زیرا پسوندهای عددی قبلاً مانع آن بودند)، بلکه از ذخیره نسخههای متعدد جلوگیری به عمل میآورد.
هنگام اجرای Wget همراه با -r یا -p، اما بدون -N، -nd، یا -nc، دانلود مجدد یک فایل باعث میشود نسخه جدید به سادگی نسخه پیشین را بازنویسی کند. افزودن -nc جلوی این رفتار را میگیرد و در عوض باعث میشود نسخه اصلی حفظ شده و نسخههای جدیدتر روی سرور نادیده گرفته شوند.
هنگام اجرای Wget با -N، چه با گزینههای -r یا -p و چه بدون آنها، تصمیمگیری پیرامون دانلود نسخه جدیدتر یک فایل وابسته به برچسب زمانی محلی و دوردست و اندازه فایل است. گزینه -nc را نمیتوان همزمان با -N تعیین کرد.
ترکیب با -O/--output-document تنها در صورتی پذیرفته میشود که فایل خروجی دادهشده موجود نباشد.
توجه داشته باشید هنگامی که -nc مشخص شود، فایلهای دارای پسوند .html یا .htm از دیسک محلی بارگیری شده و طوری تحلیل میشوند که گویی از وب دریافت شدهاند.
- --backups=backups
- پیش از بازنویسی یا نوشتن فایل، با افزودن پسوند .1 (یا _1 در سامانه VMS) به نام فایل، از فایل موجود نسخه پشتیبان میگیرد. این فایلهای پشتیبان به شکل چرخشی به .2، .3 و به همین ترتیب تا سقف backups تغییر نام مییابند (و موارد بیش از آن حذف میشوند).
- --no-netrc
- عدم تلاش برای دریافت اعتبارنامهها از فایل .netrc. به طور پیشفرض در صورت عدم ارسال در خط فرمان و نیاز به احراز هویت، فایل .netrc برای یافتن اطلاعات کاربری جستجو میشود.
- -c
- --continue
- ادامه
دریافت یک
فایل
نیمهدانلودشده.
این گزینه
زمانی
کاراست که
بخواهید
دانلودی را
که قبلاً
توسط
نمونهای
از Wget یا
برنامهای
دیگر آغاز
شده به
پایان
برسانید.
برای نمونه:
wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z
اگر فایلی با نام ls-lR.Z در دایرکتوری جاری موجود باشد، Wget فرض میکند که این بخش نخستین فایل دوردست است و از سرور میخواهد ادامه دریافت را از آفستی برابر با اندازه فایل محلی پی بگیرد.
توجه داشته باشید اگر صرفاً میخواهید اجرای کنونی Wget در صورت قطعی ارتباط در میانه راه تلاش مجدد کند، نیازی به این گزینه ندارید؛ این رفتار پیشفرض است. گزینه -c تنها بر ادامه دانلودهایی اثر دارد که پیش از فراخوانی فعلی Wget آغاز شدهاند و فایلهای محلی آنها در دایرکتوری باقی مانده است.
بدون -c، مثال بالا صرفاً فایل دوردست را در ls-lR.Z.1 دانلود کرده و فایل ناقص ls-lR.Z را دستنخورده باقی میگذارد.
اگر از -c برای یک فایل غیرخالی استفاده کنید و سرور از ادامه دانلود پشتیبانی نکند، Wget دانلود را از ابتدا آغاز کرده و فایل موجود را به طور کامل بازنویسی میکند.
از نگارش Wget 1.7 به بعد، اگر از -c برای فایلی استفاده کنید که هماندازه فایل روی سرور است، Wget از دریافت آن خودداری کرده و پیامی توضیحی چاپ میکند. همچنین اگر اندازه فایل در سرور کوچکتر از فایل محلی باشد (احتمالاً به دلیل تغییر آن روی سرور پس از آخرین دانلود)، از آنجا که ادامه دادن بیمعنی است، دانلودی رخ نمیدهد.
از طرف دیگر، هنگام استفاده از -c، هر فایلی که در سرور بزرگتر از سیستم محلی باشد به عنوان یک دانلود ناقص در نظر گرفته شده و تنها به میزان "(length(remote) - length(local))" بایت دانلود و به انتهای فایل محلی الصاق میشود. این رفتار در شرایط معین مطلوب است؛ مثلاً میتوانید با wget -c صرفاً بخشهای جدیدی را که به یک مجموعه داده یا لاگ الحاق شده دانلود کنید.
با این وجود، اگر فایل روی سرور به این دلیل بزرگتر باشد که محتوای آن تغییر یافته است، نه اینکه صرفاً دادهای به آن الصاق شده باشد، فایلی مخدوش دریافت خواهید کرد. Wget راهی برای بررسی اینکه آیا فایل محلی پیشوند معتبری از فایل دوردست است ندارد. هنگام استفاده از -c همراه با -r باید بسیار محتاط باشید، چرا که هر فایلی کاندیدای «دانلود ناقص» در نظر گرفته میشود.
یک حالت دیگر که منجر به دریافت فایل مخدوش میشود، استفاده از پراکسی HTTP ضعیفی است که رشته "transfer interrupted" را درون فایل محلی درج میکند.
توجه داشته باشید که -c تنها با سرورهای FTP و سرورهای HTTP که از هدر "Range" پشتیبانی میکنند کار میکند.
- --start-pos=OFFSET
- شروع
دانلود از
موقعیت OFFSET
(مبتنی بر
صفر). این
آفست را
میتوان بر
حسب بایت،
کیلوبایت
با پسوند `k`،
یا مگابایت
با پسوند `m` و
غیره بیان
کرد.
گزینه --start-pos اولویت بالاتری نسبت به --continue دارد. هنگامی که هر دو گزینه تعیین شوند، Wget هشداری صادر کرده و طوری عمل میکند که گویی --continue وجود ندارد.
پشتیبانی سرور از ادامه دانلود ضروری است، در غیر این صورت --start-pos کاربردی نخواهد داشت. برای جزئیات به گزینه -c رجوع فرمایید.
- --progress=type
- انتخاب نوع
نشانگر
پیشرفت
مورد نظر.
نشانگرهای
معتبر
عبارتند از
"dot" و "bar".
نشانگر "bar" به صورت پیشفرض به کار میرود. این نشانگر یک نوار پیشرفت اسکی (نمایش دماسنجی) رسم میکند که نشاندهنده وضعیت دریافت است. اگر خروجی از نوع TTY نباشد، به طور پیشفرض نشانگر "dot" استفاده خواهد شد.
از --progress=dot برای جابجایی به نمایش نقطهای استفاده کنید. این گزینه دریافت را با چاپ نقطههایی روی صفحه دنبال میکند که هر نقطه نشاندهنده مقدار معینی داده دانلودشده است.
پارامتر type میتواند یک یا چند آرگومان جانبی نیز بپذیرد. این پارامترها بسته به type متفاوت هستند و با علامت دونقطه (:) به آن اضافه میشوند: --progress=type:parameter1:parameter2.
هنگام استفاده از حالت نقطهای، میتوانید با تعیین dot:style سبک آن را تنظیم کنید. سبکهای مختلف مفاهیم متفاوتی به هر نقطه اختصاص میدهند. در سبک "default" هر نقطه ۱ کیلوبایت است، ۱۰ نقطه در یک گروه و ۵۰ نقطه در هر خط قرار دارد. سبک "binary" قالبی رایانهایتر دارد: نقاط ۸ کیلوبایتی، دستههای ۱۶ نقطهای و ۴۸ نقطه در هر خط (معادل خطوط ۳۸۴ کیلوبایتی). سبک "mega" برای دانلود فایلهای بزرگ مناسب است: هر نقطه ۶۴ کیلوبایت داده دریافت شده، ۸ نقطه در هر دسته، و ۴۸ نقطه در هر خط (هر خط ۳ مگابایت). اگر سبک "mega" کافی نباشد میتوانید از سبک "giga" استفاده کنید: هر نقطه ۱ مگابایت، ۸ نقطه در هر دسته و ۳۲ نقطه در هر خط (هر خط حاوی ۳۲ مگابایت).
در گزینه --progress=bar در حال حاضر دو پارامتر قابل تنظیم است: force و noscroll.
زمانی که خروجی TTY نباشد، نوار پیشرفت همواره به "dot" بازمیگردد، حتی اگر --progress=bar هنگام اجرا داده شده باشد. این رفتار را میتوان با استفاده از پارامتر "force" به صورت --progress=bar:force بازنویسی کرد.
به صورت پیشفرض، نوار پیشرفت در سبک bar در صورتی که طول نام فایل بیش از حداکثر طول اختصاصیافته برای نمایش باشد، نام فایل دانلودشده را از چپ به راست پیمایش (scroll) میکند. در شرایط معین مانند همراهی با --progress=bar:force، ممکن است نخواهید نام فایل پیمایش شود. با ارسال پارامتر "noscroll"، میتوان Wget را ملزم ساخت تا حد امکان نام فایل را بدون پیمایش نمایش دهد.
توجه داشته باشید که میتوانید سبک پیشفرض را با دستور "progress" در فایل .wgetrc تعیین فرمایید.
- --show-progress
- اجبار Wget به
نمایش نوار
پیشرفت در
هر سطحی از
نمایش
خروجی (verbosity).
به صورت پیشفرض، Wget نوار پیشرفت را تنها در حالت پرجزئیات (verbose) نمایش میدهد. با این حال ممکن است بخواهید نوار پیشرفت در حالتهای دیگری نظیر --no-verbose یا --quiet نیز روی صفحه نمایش داده شود. این قابلیت به ویژه هنگام دانلود چندین فایل کوچک یا بزرگ خروجی بسیار مرتبتری فراهم میسازد.
این گزینه همچنین در صورت همراهی با گزینه --output-file، نوار پیشرفت را به stderr ارسال خواهد کرد.
- -N
- --timestamping
- فعال کردن برچسبگذاری زمانی (time-stamping).
- --no-if-modified-since
- عدم ارسال هدر If-Modified-Since در حالت -N. در عوض یک درخواست مقدماتی HEAD ارسال میکند. این گزینه تنها در حالت -N اثرگذار است.
- --no-use-server-timestamps
- تنظیم
نکردن
برچسب
زمانی فایل
محلی مطابق
با زمان
سرور.
به صورت پیشفرض، هنگام دانلود یک فایل، برچسبهای زمانی آن مطابق با فایل دوردست تنظیم میشوند. این کار امکان استفاده از --timestamping در فراخوانیهای بعدی را ممکن میسازد. با این حال، گاهی مفید است که برچسب زمانی فایل محلی بر پایه زمان واقعی دانلود آن باشد؛ برای این هدف گزینه --no-use-server-timestamps در نظر گرفته شده است.
- -S
- --server-response
- چاپ هدرهای ارسالشده توسط کارسازهای HTTP و پاسخهای ارسالشده توسط کارسازهای FTP.
- --spider
- هنگامی که
با این
گزینه
فراخوانی
شود، Wget
مانند یک
خزنده وب
(اسپایدر)
عمل
میکند؛
بدین معنی
که صفحات را
دانلود
نمیکند،
بلکه تنها
در دسترس
بودن آنها
را بررسی
مینماید.
برای
نمونه،
میتوانید
بوکمارکهای
خود را
بیازمایید:
wget --spider --force-html -i bookmarks.html
این قابلیت برای نزدیک شدن به کارایی خزندههای واقعی وب همچنان به توسعه بیشتری نیاز دارد.
- -T seconds
- --timeout=seconds
- تنظیم زمان
انتظار
(مهلت
زمانی) شبکه
بر روی seconds
ثانیه. این
گزینه
معادل
تعیین
همزمان
گزینههای
--dns-timeout، --connect-timeout و
--read-timeout است.
هنگام ارتباط با شبکه، Wget میتواند مهلت زمانی را بررسی کرده و در صورتی که عملیات بیش از حد به طول بینجامد، آن را لغو کند. این امر از رخداد ناهنجاریهایی چون معلق ماندن در خواندن و تلاشهای نامحدود برای اتصال جلوگیری به عمل میآورد. تنها مهلت زمانی فعال به صورت پیشفرض، ۹۰۰ ثانیه برای خواندن دادهها است. تنظیم مهلت زمانی بر روی 0 آن را کاملاً غیرفعال میسازد. مگر آنکه دقیقاً بدانید چه کاری انجام میدهید، توصیه میشود تنظیمات پیشفرض زمان انتظار را تغییر ندهید.
تمامی گزینههای مرتبط با مهلت زمانی مقادیر اعشاری و زیر ثانیه را نیز میپذیرند. برای نمونه، مقدار 0.1 ثانیه یک انتخاب معتبر (هرچند غیرعاقلانه) برای مهلت زمانی است. زمانهای انتظار زیر ثانیه جهت سنجش زمان پاسخگویی سرور یا آزمودن تاخیر شبکه بسیار کاربردی هستند.
- --dns-timeout=seconds
- تنظیم مهلت زمانی جستجوی DNS بر روی seconds ثانیه. جستجوهای DNS که در این زمان مشخص تکمیل نشوند با شکست روبرو خواهند شد. به صورت پیشفرض هیچ زمان انتظاری برای DNS وجود ندارد، مگر موردی که توسط کتابخانههای سیستمی اعمال گردد.
- --connect-timeout=seconds
- تنظیم مهلت زمانی برقراری اتصال بر روی seconds ثانیه. اتصالات TCP که برقراری آنها بیش از این طول بکشد لغو خواهند شد. به صورت پیشفرض مهلت زمانی اتصال وجود ندارد، مگر موردی که توسط کتابخانههای سیستمی تعیین شده باشد.
- --read-timeout=seconds
- تنظیم مهلت
زمانی
خواندن (و
نوشتن) بر
روی seconds
ثانیه.
«زمان» در
این مهلت به
زمان
بیکاری (idle time)
اطلاق
میشود:
چنانچه در
هر نقطهای
از فرآیند
دانلود،
برای زمانی
بیش از
ثانیههای
مشخصشده
هیچ
دادهای
دریافت
نشود،
عملیات
خواندن با
شکست مواجه
شده و
دانلود از
نو تلاش
میشود. این
گزینه به
طور مستقیم
بر کل مدت
زمان
دانلود
اثری ندارد.
مسلماً سرور دوردست ممکن است زودتر از زمان تعیینشده در این گزینه اقدام به بستن اتصال نماید. پیشفرض مهلت خواندن ۹۰۰ ثانیه است.
- --limit-rate=amount
- محدود کردن
نرخ سرعت
دانلود به
amount بایت در
ثانیه. این
مقدار را
میتوان بر
حسب بایت،
کیلوبایت
با پسوند k
یا مگابایت
با پسوند m
بیان کرد.
برای
نمونه،
گزینه --limit-rate=20k
نرخ دریافت
را به 20KB/s
محدود
میسازد.
این قابلیت
زمانی که به
هر دلیل
نمیخواهید
Wget کل پهنای
باند را
اشغال کند
بسیار مفید
است.
این گزینه استفاده از اعداد اعشاری را مجاز میداند، معمولاً همراه با پسوندهای مقیاس؛ برای مثال --limit-rate=2.5k مقداری معتبر است.
توجه داشته باشید که Wget این محدودیت را با خواباندن (Sleep) فرآیند به میزان زمان متناسب پس از هر عملیات خواندن شبکه که کمتر از حد مجاز زمان برده است پیادهسازی میکند. این راهبرد در نهایت باعث کند شدن انتقال TCP تا رسیدن تقریبی به نرخ تعیینشده میشود. با این حال ایجاد این تعادل ممکن است اندکی زمان ببرد، بنابراین تعجب نکنید اگر محدودسازی نرخ دانلود برای فایلهای بسیار کوچک عملکرد دقیقی نداشته باشد.
- -w seconds
- --wait=seconds
- انتظار به
میزان
ثانیههای
مشخصشده
بین
دریافتها.
استفاده از
این گزینه
پیشنهاد
میشود،
چرا که با
کاهش توالی
درخواستها
از بار
پردازشی
سرور
میکاهد.
زمان را
میتوان به
جای ثانیه
با پسوند
"m" به
دقیقه، با
پسوند
"h" به
ساعت، یا با
پسوند
"d" به
روز نیز
بیان کرد.
تعیین مقادیر بزرگ زمانی سودمند است که شبکه یا میزبان مقصد دچار قطعی باشد، تا Wget بتواند به اندازه کافی صبر کند تا خطای شبکه پیش از تلاش مجدد برطرف شود. بازه انتظار تعیینشده تحت تأثیر گزینه "--random-wait" نیز قرار میگیرد.
- --waitretry=seconds
- اگر
نمیخواهید
Wget میان هر
دریافت
وقفه
بیندازد،
بلکه فقط
بین
تلاشهای
مجدد برای
دانلودهای
شکستخورده
صبر کند، از
این گزینه
استفاده
نمایید. در
این حالت Wget
از راهبرد
عقبنشینی
خطی (linear backoff) بهره
میگیرد: ۱
ثانیه پس از
نخستین
شکست در یک
فایل، ۲
ثانیه پس از
دومین
شکست، تا
رسیدن به
سقف seconds
ثانیهای
که تعیین
کردهاید.
به صورت پیشفرض، Wget مقدار ۱۰ ثانیه را برای این فاصله در نظر میگیرد.
- --random-wait
- برخی
وبسایتها
با تحلیل
فایلهای
لاگ به
دنبال
الگوهای
آماری
معنادار در
فواصل
زمانی میان
درخواستها
میگردند
تا
برنامههای
دریافت
خودکار
مانند Wget را
شناسایی
کنند. این
گزینه باعث
میشود
فاصله بین
درخواستها
به طور
تصادفی بین
۰.۵ تا ۱.۵
برابر
مقدار
تعیینشده
در گزینه --wait
تغییر یابد
تا حضور Wget را
از دید این
سامانههای
تحلیل
پنهان سازد.
مقالهای در سال ۲۰۰۱ کدهایی را برای اینگونه تحلیلهای بلادرنگ ارائه داد و پیشنهاد مسدودسازی بر پایه رده آدرس C را مطرح ساخت. گزینه --random-wait در پاسخ به چنین توصیههای نسنجیدهای که کاربران بیشماری را به خاطر عملکرد یک برنامه مسدود میکرد طراحی گردید.
- --no-proxy
- عدم استفاده از سرورهای پراکسی، حتی اگر متغیر محیطی مناسب (*_proxy) تعریف شده باشد.
- -Q quota
- --quota=quota
- تعیین
سهمیه
(کوتا)
دانلود
برای
دریافتهای
خودکار.
مقدار
میتواند
بر حسب بایت
(پیشفرض)،
کیلوبایت
(با پسوند k)
یا مگابایت
(با پسوند m)
مشخص شود.
توجه داشته باشید که سهمیه هرگز مانع دانلود یک فایل واحد نمیشود؛ بنابراین اگر دستور wget -Q10k https://example.com/ls-lR.gz را اجرا کنید، کل فایل ls-lR.gz دانلود خواهد شد. همین قاعده هنگام تعیین چند نشانی اینترنتی در خط فرمان نیز صادق است. سهمیه تنها در پایان دانلود هر فایل بررسی میشود، بنابراین هرگز فایلی به صورت ناقص ذخیره نخواهد شد. از این رو میتوانید با اطمینان بنویسید wget -Q2m -i sites؛ فرآیند دانلود پس از تکمیل فایلی که سهمیه را پر میکند پایان خواهد یافت.
تنظیم مقدار سهمیه بر روی 0 یا inf سهمیه دانلود را نامحدود میسازد.
- --no-dns-cache
- خاموش کردن
حافظه نهان
(کش) برای
جستجوهای DNS.
به طور
معمول Wget
نشانیهای
IP
دریافتشده
از DNS را به
خاطر
میسپارد
تا مجبور
نباشد
مکرراً با
سرور DNS تماس
برقرار کند.
این کش
صرفاً در
حافظه رم
نگهداری
میشود و با
اجرای تازه
Wget پاک
میگردد.
با این حال، در برخی شرایط ثبت نشدن حافظه نهان میزبانها مطلوب است. با این گزینه Wget در هر اتصال جدید یک جستجوی تازه DNS انجام میدهد. لطفاً توجه داشته باشید که این گزینه تاثیری بر کشینگ لایههای خارجی مانند NSCD ندارد.
اگر دقیقاً کاربرد این گزینه را نمیدانید، به احتمال زیاد نیازی به آن نخواهید داشت.
- --restrict-file-names=modes
- تغییر دادن
کاراکترهایی
از
نشانیهای
دوردست که
باید هنگام
تولید نام
فایلهای
محلی اسکیپ
شوند.
کاراکترهایی
که با این
گزینه
محدود
میشوند،
با فرمت
%HH
جایگزین
خواهند شد،
که در آن HH
عدد
هگزادسیمال
متناظر با
کاراکتر
محدودشده
است. این
گزینه
همچنین
میتواند
برای تبدیل
تمام حروف
به حروف
کوچک یا
بزرگ به کار
رود.
به طور پیشفرض، Wget کاراکترهایی را که به عنوان نام فایل در سیستمعامل شما نامعتبر یا ناامن هستند، به همراه کاراکترهای کنترلی اسکیپ میکند. این گزینه برای تغییر پیشفرضها مفید است، مثلاً زمانی که قصد دانلود در پارتیشنی غیربومی را دارید یا میخواهید کاراکترها را به دامنه اسکی محدود سازید.
مقادیر modes مجموعهای جداشده با کاما از موارد متنی هستند. مقادیر مجاز عبارتند از unix، windows، nocontrol، ascii، lowercase و uppercase. مقادیر unix و windows ناسازگار هستند و یکدیگر را بازنویسی میکنند، همانگونه که lowercase و uppercase چنین حالتی دارند.
هنگام تعیین "unix"، کاراکتر / و کاراکترهای کنترلی در دامنههای ۰ تا ۳۱ و ۱۲۸ تا ۱۵۹ اسکیپ میشوند. این حالت پیشفرض در سیستمعاملهای شبهیونیکس است.
هنگام تعیین "windows"، کاراکترهای \، |، /، :، ?، "، *، <، > و کاراکترهای کنترلی در دامنههای ۰ تا ۳۱ و ۱۲۸ تا ۱۵۹ اسکیپ میشوند. علاوه بر این در حالت ویندوز از + به جای : برای تفکیک میزبان و پورت و از @ به جای ? برای تفکیک بخش پرسوجو استفاده میشود. این حالت پیشفرض در ویندوز است.
تعیین nocontrol اسکیپ کردن کاراکترهای کنترلی را خاموش میکند. این امر در مواردی مانند دانلود نشانیهای وب حاوی کاراکترهای UTF-8 در سامانههای سازگار سودمند است.
حالت ascii مشخص میکند که هر بایتی با مقدار خارج از دامنه اسکی (بزرگتر از ۱۲۷) باید اسکیپ شود.
- -4
- --inet4-only
- -6
- --inet6-only
- اجبار در
اتصال به
نشانیهای
IPv4 یا IPv6. با
گزینه --inet4-only
یا -4، Wget تنها
به
میزبانهای
IPv4 متصل شده و
رکوردهای AAAA
را نادیده
میگیرد. در
مقابل با
گزینه --inet6-only
یا -6، تنها
به
میزبانهای
IPv6 متصل شده و
رکوردهای A
و
نشانیهای
IPv4 را نادیده
میانگارد.
هیچکدام از این گزینهها در حالت عادی مورد نیاز نیستند. Wget به طور پیشفرض خانواده نشانی تعیینشده در DNS را به کار میبرد و در صورت وجود هر دو، آنها را به ترتیب میآزماید.
از این گزینهها میتوان برای دیباگ یا حل مشکلات پیکربندی نادرست شبکه بهره برد. تنها یکی از گزینههای --inet6-only و --inet4-only در یک زمان قابل تعیین است.
- --prefer-family=none/IPv4/IPv6
- در صورت
فراهم بودن
چندین
نشانی،
ابتدا به
خانواده
نشانی
مشخصشده
متصل
میشود.
ترتیب
نشانیهای
ارائهشده
توسط DNS در
حالت
پیشفرض
بدون تغییر
استفاده
میشود.
این گزینه مانع بروز خطاهای کاذب در شبکههای IPv4 هنگام مواجهه با سرورهایی میشود که هر دو نشانی IPv4 و IPv6 را برمیگردانند. بر خلاف گزینههای -4 و -6، این گزینه دسترسی به خانواده دیگر را مسدود نمیکند، بلکه تنها ترتیب تلاش برای اتصال را تعیین مینماید. ترتیب داخلی میان نشانیهای یک خانواده پایدار باقی میماند.
- --retry-connrefused
- تلقی خطای «اتصال رد شد» (connection refused) به عنوان یک خطای گذرا و تلاش دوباره. در حالت عادی Wget پس از دریافت چنین خطایی تلاش را متوقف میسازد زیرا نشانه عدم فعالیت سرور است. این گزینه برای آینهداری سایتهای ناپایدار که سرور آنها در بازههای کوتاه قطع میشود کاربرد دارد.
- --user=user
- --password=password
- تعیین نام کاربری user و گذرواژه password برای دریافت هر دو نوع پروتکل FTP و HTTP. این مقادیر را میتوان با گزینههای --ftp-user و --ftp-password برای FTP و گزینههای --http-user و --http-password برای HTTP بازنویسی کرد.
- --ask-password
- درخواست گذرواژه در پایانه به ازای هر اتصال برقرارشده. این گزینه به دلیل ناسازگاری همزمان با --password قابل استفاده نیست.
- --use-askpass=command
- درخواست
نام کاربری
و گذرواژه
با استفاده
از دستور
مشخصشده.
اگر دستوری
معین نشود،
از دستور
موجود در
متغیر
محیطی WGET_ASKPASS
استفاده
میشود. در
صورت عدم
تنظیم آن،
از متغیر SSH_ASKPASS
بهره گرفته
خواهد شد.
میتوانید دستور پیشفرض را در فایل .wgetrc تعیین فرمایید.
- --no-iri
- غیرفعال
کردن
پشتیبانی
از
شناسههای
بینالمللی
منابع (IRI).
برای
فعالسازی
مجدد از --iri
استفاده
کنید.
پشتیبانی
از IRI به طور
پیشفرض
فعال است.
وضعیت پیشفرض را میتوان با دستور "iri" در فایل .wgetrc تعیین نمود.
- --local-encoding=encoding
- اجبار Wget به
استفاده از
encoding به عنوان
کدگذاری
پیشفرض
سیستم محلی.
این امر بر
چگونگی
تبدیل
نشانیهای
وب
ارائهشده
از لوکال به
UTF-8 برای
پشتیبانی
از IRI اثر
میگذارد.
ابزار Wget از تابع nl_langinfo() و سپس متغیر محیطی "CHARSET" برای دریافت لوکال استفاده میکند. در صورت شکست، از ASCII بهره میبرد.
- --remote-encoding=encoding
- اجبار Wget به
استفاده از
encoding به عنوان
کدگذاری
پیشفرض
سرور
دوردست. این
مورد بر
نحوه تبدیل
URIهای موجود
در فایلها
از کدگذاری
دوردست به UTF-8
در دریافت
بازگشتی
اثر
میگذارد.
برای پروتکل HTTP، کدگذاری دوردست در هدر "Content-Type" و متاتگ HTML با نام "Content-Type http-equiv" یافت میشود.
- --unlink
- اجبار Wget به حذف و لغو پیوند (unlink) فایل به جای بازنویسی مستقیم بر روی فایل موجود. این گزینه برای دانلود در دایرکتوریهای حاوی پیوند سخت (hardlink) بسیار مفید است.
گزینههای دایرکتوری (Directory Options)
- -nd
- --no-directories
- عدم ایجاد سلسلهمراتب دایرکتوریها در هنگام دریافت بازگشتی. با فعال شدن این گزینه، تمامی فایلها بدون بازنویسی در دایرکتوری جاری ذخیره خواهند شد (اگر نام یکسانی چند بار ظاهر شود، فایلها پسوند .n دریافت میکنند).
- -x
- --force-directories
- نقطه مقابل گزینه -nd؛ اجبار به ایجاد سلسلهمراتب دایرکتوریها حتی اگر در حالت عادی نیازی به ایجاد آن نباشد. برای نمونه، دستور wget -x http://fly.srk.fer.hr/robots.txt فایل دانلودشده را در مسیر fly.srk.fer.hr/robots.txt ذخیره میکند.
- -nH
- --no-host-directories
- غیرفعال کردن ایجاد دایرکتوری با پیشوند نام میزبان. به صورت پیشفرض، اجرای Wget به صورت -r http://fly.srk.fer.hr ساختاری از دایرکتوریها با شروع از fly.srk.fer.hr/ میسازد. این گزینه مانع این رفتار میشود.
- --protocol-directories
- استفاده از نام پروتکل به عنوان بخشی از مسیر دایرکتوری در فایلهای محلی. برای نمونه با این گزینه، wget -r http://host به جای host/... در مسیر http/host/... ذخیره خواهد شد.
- --cut-dirs=number
- نادیده
گرفتن number
جزء از مسیر
دایرکتوریها.
این قابلیت
برای اعمال
کنترل دقیق
بر روی
دایرکتوری
مقصد در
دریافت
بازگشتی
بسیار
کاربردی
است.
برای مثال دایرکتوری در مسیر ftp://ftp.xemacs.org/pub/xemacs را در نظر بگیرید. اگر آن را با -r دریافت کنید، به صورت محلی در مسیر ftp.xemacs.org/pub/xemacs/ ذخیره میشود. اگرچه گزینه -nH بخش ftp.xemacs.org/ را حذف میکند، اما هنوز مسیر pub/xemacs باقی مانده است. در اینجا --cut-dirs به کار میآید؛ این گزینه موجب میشود Wget تعداد مشخصی از اجزای مسیر دایرکتوری دوردست را نادیده بگیرد. نمونههای زیر نحوه عملکرد این گزینه را نشان میدهند:
No options -> ftp.xemacs.org/pub/xemacs/ -nH -> pub/xemacs/ -nH --cut-dirs=1 -> xemacs/ -nH --cut-dirs=2 -> . --cut-dirs=1 -> ftp.xemacs.org/xemacs/ ...
اگر صرفاً مایل به حذف ساختار دایرکتوری هستید، این گزینه مشابه ترکیبی از -nd و -P است. با این حال بر خلاف -nd، گزینه --cut-dirs زیردایرکتوریها را از بین نمیبرد؛ برای مثال با -nH --cut-dirs=1، زیرشاخه beta/ همانطور که انتظار میرود در مسیر xemacs/beta قرار خواهد گرفت.
- -P prefix
- --directory-prefix=prefix
- تنظیم پیشوند دایرکتوری بر روی prefix. پیشوند دایرکتوری پوشهای است که تمامی فایلها و زیردایرکتوریهای دیگر در آن ذخیره میشوند (ریشه درخت دانلود). مقدار پیشفرض . (دایرکتوری جاری) است.
گزینههای HTTP (HTTP Options)
- --default-page=name
- استفاده از name به عنوان نام پیشفرض فایل در صورتی که نام آن مشخص نباشد (مثلاً برای نشانیهای وبی که به اسلش ختم میشوند)، به جای نام index.html.
- -E
- --adjust-extension
- اگر فایلی
از نوع application/xhtml+xml
یا text/html
دانلود شود
و نشانی
اینترنتی
به عبارت
باقاعده
\.[Hh][Tt][Mm][Ll]? ختم
نگردد، این
گزینه
پسوند .html را
به انتهای
نام فایل
محلی اضافه
میکند. این
قابلیت
زمانی مفید
است که برای
نمونه در
حال
آینهداری
وبسایتی
با صفحات .asp
هستید، اما
میخواهید
صفحات
آینهشده
روی سرور
آپاچی محلی
شما به
درستی
نمایش داده
شوند.
کاربرد
مناسب دیگر
آن هنگام
دانلود
محتوای
تولیدشده
توسط
اسکریپتهای
CGI است؛ برای
مثال نشانی
http://site.com/article.cgi?25 به
صورت article.cgi?25.html
ذخیره
خواهد شد.
توجه داشته باشید نام فایلهایی که به این شیوه تغییر مییابند، در هر بار آینهداری مجدد سایت دوباره دانلود خواهند شد؛ چرا که Wget نمیتواند تشخیص دهد فایل محلی X.html متناظر با نشانی دوردست X است (زیرا هنوز نمیداند آن نشانی خروجی از نوع text/html یا application/xhtml+xml تولید میکند).
از نگارش 1.12 به بعد، Wget همچنین اطمینان حاصل میکند که فایلهای دانلودشده از نوع text/css به پسوند .css ختم شوند و نام این گزینه از --html-extension به نام فعلی تغییر یافت تا رفتار جدید آن را بهتر منعکس سازد. نام پیشین همچنان معتبر است اما منسوخ تلقی میشود.
از نگارش 1.19.2، Wget همچنین تضمین میکند که هر فایل دریافت شده با هدر "Content-Encoding" از نوع br، compress، deflate یا gzip به ترتیب به پسوندهای .br، .Z، .zlib و .gz ختم گردند.
در آینده ممکن است این گزینه برای پشتیبانی از پسوندهای سایر قالبهای محتوا نیز گسترش یابد.
- --http-user=user
- --http-password=password
- تعیین نام
کاربری user و
گذرواژه password
در سرور HTTP.
بسته به نوع
چالش احراز
هویت سرور،
Wget آنها را
با یکی از
طرحهای
احراز هویت
"basic"
(ناامن)،
"digest"، یا
طرح
ویندوزی
"NTLM"
کدگذاری
خواهد کرد.
روش دیگر تعیین نام کاربری و گذرواژه در خود نشانی وب است. هر دو روش رمز عبور شما را برای هر کاربری که دستور "ps" را اجرا کند فاش میسازد. برای جلوگیری از مشاهده گذرواژهها، از --use-askpass استفاده نمایید یا آنها را در فایلهای .wgetrc یا .netrc ذخیره کرده و با دستور "chmod" دسترسی سایر کاربران به این فایلها را محدود سازید.
- --no-http-keep-alive
- غیرفعال
کردن
قابلیت
«اتصال
پایدار» (keep-alive)
در
دانلودهای
HTTP. در حالت
عادی، Wget از
سرور
میخواهد
اتصال را
باز نگه
دارد تا
هنگام
دانلود
چندین سند
از همان
سرور،
انتقال
آنها روی
یک اتصال TCP
واحد انجام
شود. این
کار باعث
صرفهجویی
در زمان و
کاهش بار
سرور
میگردد.
این گزینه زمانی مفید است که اتصالات مداوم به دلیل اشکال در سرور یا عدم توانایی اسکریپتهای سمت سرور به درستی عمل نمیکنند.
- --no-cache
- غیرفعال
کردن حافظه
نهان (کش)
سمت سرور.
در این
حالت، Wget
دستورات
مناسب (Cache-Control: no-cache
و Pragma: no-cache) را به
سرور
دوردست
ارسال
میکند تا
فایل
مستقیماً
از سرویس
دوردست
دریافت شود
و نسخه
کششده
برگردانده
نشود. این
مورد برای
بهروزرسانی
اسناد
منقضیشده
بر روی
سرورهای
پراکسی
بسیار مفید
است.
استفاده از کش به صورت پیشفرض مجاز است.
- --no-cookies
- غیرفعال کردن استفاده از کوکیها. کوکیها سازوکاری برای حفظ وضعیت در سمت سرور هستند. سرور با هدر "Set-Cookie" کوکی را ارسال میکند و کلاینت در درخواستهای بعدی همان کوکی را بازمیگرداند. پیشفرض، استفاده از کوکیها است؛ با این حال ذخیرهسازی کوکیها به طور پیشفرض فعال نیست.
- --load-cookies file
- بارگیری
کوکیها از
file پیش از
نخستین
دریافت HTTP.
فایل file یک
فایل متنی
با فرمت
اصلی فایل
cookies.txt مرورگر
نتاسکیپ
است.
از این گزینه معمولاً هنگام آینهداری سایتهایی استفاده میشود که دسترسی به محتوای آنها نیازمند ورود به سیستم (لاگین) است. فرآیند ورود معمولاً با صدور یک کوکی پس از بررسی اعتبارنامهها انجام میشود که هویت شما را در مراجعات بعدی تایید میکند.
با گزینه --load-cookies صرفاً مسیر فایل cookies.txt را به Wget معرفی میکنید تا همان کوکیهای مرورگر شما را ارسال نماید. مرورگرهای مختلف این فایل متنی را در مسیرهای متفاوتی نگهداری میکنند:
- "Netscape 4.x."
- کوکیها در مسیر ~/.netscape/cookies.txt قرار دارند.
- "Mozilla و Netscape 6.x."
- فایل کوکی موزیلا نیز cookies.txt نام دارد و زیرپوشهای از پروفایل شما در ~/.mozilla است.
- "Internet Explorer."
- میتوانید با استفاده از منوی File، بخش Import and Export و سپس Export Cookies فایلی برای Wget تولید کنید.
- "سایر مرورگرها."
- در صورت استفاده از سایر مرورگرها، گزینه --load-cookies تنها در صورتی کار میکند که بتوانید فایل کوکی با فرمت استاندارد نتاسکیپ تولید کنید.
اگر امکان استفاده از --load-cookies را ندارید، در صورت پشتیبانی مرورگر از مدیریت کوکی، میتوانید نام و مقدار کوکی را به صورت دستی با هدر ارسال کنید:
wget --no-cookies --header "Cookie: <name>=<value>"
- --save-cookies file
- ذخیره کوکیها در file پیش از خروج برنامه. کوکیهای منقضیشده یا کوکیهای بدون تاریخ انقضا (کوکیهای نشست) ذخیره نخواهند شد، مگر با استفاده از گزینه --keep-session-cookies.
- --keep-session-cookies
- هنگام
تعیین این
گزینه،
دستور --save-cookies
موظف
میشود
کوکیهای
نشست (session cookies) را
نیز ذخیره
کند.
کوکیهای
نشست در
حالت عادی
ذخیره
نمیشوند
زیرا تنها
برای حفظ در
حافظه رم و
تا زمان
بستن
مرورگر
طراحی
شدهاند.
ذخیره
آنها در
سایتهایی
که پیش از
دسترسی
نیازمند
ورود به
حساب هستند
سودمند است.
با این
گزینه،
چندین
اجرای
مجزای Wget از
دیدگاه
سایت به
عنوان یک
نشست واحد
در نظر
گرفته
میشود.
از آنجا که ساختار فایل کوکی معمولاً فاقد کوکیهای نشست است، Wget آنها را با برچسب انقضای 0 ثبت میکند. هنگام بارگیری با --load-cookies، این موارد به عنوان کوکی نشست شناخته میشوند.
- --ignore-length
- برخی
سرورهای HTTP
(به ویژه
برنامههای
CGI) هدرهای
نادرست و
غیرواقعی
برای
"Content-Length"
ارسال
میکنند که
باعث
سردرگمی Wget
میشود،
زیرا گمان
میکند کل
سند دریافت
نشده است.
نشانه این
وضعیت
تلاشهای
مکرر Wget برای
دریافت
مجدد سند در
همان بایت
معین است.
با این گزینه، Wget هدر "Content-Length" را به کلی نادیده میگیرد؛ به گونهای که گویی هرگز وجود نداشته است.
- --header=header-line
- ارسال هدر
سفارشی header-line
همراه با
سایر هدرها
در هر
درخواست HTTP.
هدر
ارائهشده
عیناً
فرستاده
میشود،
بنابراین
باید شامل
نام و مقدار
جداشده با
دو نقطه
باشد و فاقد
خط جدید
باشد.
میتوانید با تکرار گزینه --header بیش از یک هدر را تعریف کنید:
wget --header='Accept-Charset: iso-8859-2' \ --header='Accept-Language: fa' \ http://fly.srk.fer.hrتعیین رشته خالی به عنوان مقدار هدر، تمامی هدرهای پیشین تعریفشده توسط کاربر را پاک میکند.
از نگارش 1.10، میتوان از این گزینه برای بازنویسی هدرهایی که به طور خودکار تولید میشوند استفاده کرد. برای مثال دستور زیر Wget را ملزم میکند به لوکالهاست متصل شده اما مقدار foo.bar را در هدر "Host" ارسال نماید:
wget --header="Host: foo.bar" http://localhost
- --compression=type
- انتخاب نوع
فشردهسازی
مورد
استفاده.
مقادیر
مجاز
عبارتند از
auto، gzip و none.
در صورت تعیین auto یا gzip، Wget از سرور میخواهد فایل را با قالب gzip فشرده سازد. اگر سرور فایل را فشرده کرده و هدر "Content-Encoding" مناسب ارسال دارد، فایل به طور خودکار از حالت فشرده خارج میشود.
در صورت تعیین none، Wget درخواستی برای فشردهسازی نمیفرستد و پاسخهای سرور را بازگشایی نمیکند. این حالت پیشفرض است.
پشتیبانی از فشردهسازی در حال حاضر آزمایشی است؛ در صورت بروز هرگونه اشکال آن را به نشانی "bug-wget@gnu.org" گزارش فرمایید.
- --max-redirect=number
- تعیین حداکثر تعداد دفعات مجاز برای دنبال کردن تغییر مسیرها (redirections) برای یک منبع. مقدار پیشفرض ۲۰ است که معمولاً بسیار بیشتر از حد نیاز است. با این حال، در مواقعی که قصد دارید تعداد بیشتری (یا کمتری) را مجاز کنید، این گزینه را به کار ببرید.
- --proxy-user=user
- --proxy-password=password
- تعیین نام
کاربری user و
گذرواژه password
برای احراز
هویت در یک
سرور
پراکسی.
ابزار Wget
آنها را با
روش احراز
هویت
پایهای
("basic")
کدگذاری
میکند.
ملاحظات امنیتی مشابه با گزینه --http-password در اینجا نیز صادق است.
- --referer=url
- گنجاندن هدر `Referer: url` در درخواستهای HTTP. این گزینه برای دریافت اسنادی با پردازش سمت سرور مفید است که فرض میکنند همیشه توسط مرورگرهای تعاملی وب دریافت میشوند و تنها زمانی خروجی درستی تولید میکنند که Referer روی یکی از صفحاتی تنظیم شده باشد که به آنها پیوند دارد.
- --save-headers
- ذخیره هدرهای ارسالشده توسط سرور HTTP در فایل خروجی، پیش از محتوای اصلی و با یک خط خالی به عنوان جداکننده.
- -U agent-string
- --user-agent=agent-string
- معرفی هویت
خود به سرور
HTTP با عنوان
agent-string.
پروتکل HTTP به کلاینتها اجازه میدهد با فیلد هدر "User-Agent" خود را معرفی نمایند. این ویژگی شناسایی نرمافزار را معمولاً برای اهداف آماری یا بررسی نقض پروتکلها ممکن میسازد. ابزار Wget در حالت عادی هویت خود را به صورت Wget/version اعلام میکند که در آن version شماره نگارش کنونی Wget است.
با این حال برخی وبسایتها بر اساس اطلاعات هدر "User-Agent" محتوای متفاوتی تحویل میدهند یا دسترسی سایر کلاینتها را مسدود میکنند. این گزینه به شما امکان تغییر خط "User-Agent" ارسالی توسط Wget را میدهد.
تعیین عامل کاربر خالی با دستور --user-agent="" به Wget دستور میدهد که هدر "User-Agent" را در درخواستهای HTTP ارسال نکند.
- --post-data=string
- --post-file=file
- استفاده از
متد POST برای
تمامی
درخواستهای
HTTP و ارسال
دادههای
مشخصشده
در بدنه
درخواست.
گزینه --post-data
رشته string را
به عنوان
داده
میفرستد،
در حالی که
--post-file
محتویات file
را ارسال
میکند. به
جز این
مورد، هر دو
گزینه
کاملاً
یکسان عمل
میکنند. به
طور خاص هر
دو انتظار
محتوایی با
ساختار
"key1=value1&key2=value2"
همراه با
کدگذاری
درصدی برای
کاراکترهای
ویژه دارند.
گزینه --post-file
برای پیوست
کردن
فایلها
درون
فرمها در
نظر گرفته
نشده است؛
بلکه محتوا
باید
دقیقاً
مانند سایر
دادهها به
فرمت
"key=value"
باشد. ابزار
Wget در حال
حاضر از
ارسال
دادههای
"multipart/form-data"
پشتیبانی
نمیکند و
تنها از
"application/x-www-form-urlencoded"
پشتیبانی
به عمل
میآورد.
تنها باید
یکی از
گزینههای
--post-data یا --post-file
استفاده
شود.
لطفاً در نظر داشته باشید Wget اندازه دادههای POST را از پیش بررسی میکند؛ بنابراین آرگومان "--post-file" باید یک فایل معمولی باشد و استفاده از FIFO یا مواردی مانند /dev/stdin عمل نخواهد کرد.
از نگارش 1.15 به بعد، اگر پس از اتمام درخواست POST تغییر مسیر داده شود، رفتار Wget وابسته به کد وضعیت پاسخ سرور خواهد بود. در صورت کدهای 301، 302 یا 307، طبق RFC2616 ارسال درخواست POST ادامه مییابد. در صورتی که سرور خواهان تغییر متد به GET باشد باید کد 303 See Other را بازگرداند.
مثال زیر نحوه ورود به سیستم با متد POST و سپس دریافت صفحات مورد نظر را نشان میدهد:
# ورود به سرور. این کار تنها یک بار انجام میشود. wget --save-cookies cookies.txt \ --post-data 'user=foo&password=bar' \ http://example.com/auth.php # اکنون صفحات مورد نظر دریافت میشوند. wget --load-cookies cookies.txt \ -p http://example.com/interesting/article.phpاگر سرور برای ردیابی احراز هویت کاربر از کوکیهای نشست استفاده کند، روش فوق کار نخواهد کرد مگر آنکه همراه با --save-cookies از گزینه --keep-session-cookies نیز استفاده کنید.
- --method=HTTP-Method
- برای اهداف اسکریپتنویسی RESTful، ابزار Wget امکان ارسال سایر متدهای HTTP را بدون نیاز به تنظیم صریح با --header=Header-Line فراهم میسازد. Wget هر رشتهای را که پس از --method بیاید به عنوان متد HTTP به سرور ارسال میکند.
- --body-data=Data-String
- --body-file=Data-File
- این گزینه
باید زمانی
تنظیم شود
که
دادههای
تکمیلی
همراه با
متد
مشخصشده
با --method به
سرور ارسال
گردد. گزینه
--body-data رشته string
را به عنوان
داده
میفرستد،
در حالی که
--body-file
محتویات file
را ارسال
میدارد.
تنها یکی از
این دو
گزینه باید
مشخص گردد.
در صورت تغییر مسیر، Wget متد جاری را متوقف کرده و تا اتمام تغییر مسیر درخواست GET ارسال میکند، مگر در کد تغییر مسیر 307 Temporary Redirect که تصریح میکند متد درخواست نباید تغییر کند.
- --content-disposition
- با فعال
کردن این
گزینه،
پشتیبانی
آزمایشی از
هدرهای
"Content-Disposition"
فعال
میشود. این
قابلیت
برای برخی
برنامههای
CGI دانلود
فایل که نام
فایل را در
هدر توصیف
میکنند
بسیار مفید
است.
در صورت ترکیب با --metalink-over-http و --trust-server-names، فایلهای Content-Type: application/metalink4+xml با فیلد filename هدر "Content-Disposition" در صورت در دسترس بودن نامگذاری خواهند شد.
- --content-on-error
- در صورت فعال بودن این گزینه، Wget در هنگام دریافت کدهای وضعیت خطای HTTP محتوا را نادیده نمیگیرد و آن را دانلود و ذخیره مینماید.
- --trust-server-names
- در صورت فعال بودن، در زمان تغییر مسیر، نام فایل محلی بر اساس نشانی اینترنتی حاصل از تغییر مسیر تعیین میشود. در حالت پیشفرض نام فایل محلی بر اساس نشانی وب اولیه تعیین میگردد. در دریافت بازگشتی، این ویژگی به انطباق ساختار فایل با سرور کمک میکند.
- --auth-no-challenge
- در صورت
تعیین این
گزینه، Wget
اطلاعات
احراز هویت
پایهای HTTP
(نام کاربری
و گذرواژه
متن آشکار)
را برای
تمامی
درخواستها
بدون
انتظار
برای
دریافت
چالش احراز
هویت از
سرور ارسال
میکند.
استفاده از این گزینه پیشنهاد نمیشود و تنها برای سازگاری با برخی سرورهای خاص و قدیمی کاربرد دارد.
- --retry-on-host-error
- تلقی خطاهای میزبان، نظیر «شکست موقت در تحلیل نام» (Temporary failure in name resolution)، به عنوان خطاهای گذرا و غیرمهلک، و تلاش مجدد برای دریافت.
- --retry-on-http-error=code[,code,...]
- تلقی کدهای
خطای
تعیینشده
HTTP به عنوان
خطاهای
گذرا و
غیرمهلک.
فهرستی از
کدهای ۳
رقمی HTTP
جداشده با
کاما به
عنوان
آرگومان
دریافت
میشود. این
گزینه برای
سناریوهایی
مانند
کدهای 503
(سرویس در
دسترس نیست)
و 429 (تعداد
درخواستها
بیش از حد
است) که در
حالت عادی
دوباره
تلاش
نمیشوند،
مفید است.
استفاده از این گزینه صرفاً برای شرایط ویژه در نظر گرفته شده است و به کارگیری عمومی آن توصیه نمیگردد، زیرا ممکن است بار اضافی بر سروری که خود در حال کاهش بار است تحمیل کند.
گزینههای HTTPS (SSL/TLS) (HTTPS (SSL/TLS) Options)
برای پشتیبانی از دانلودهای رمزنگاریشده HTTP (یا همان HTTPS)، ابزار Wget باید با یک کتابخانه خارجی SSL کامپایل شده باشد. در حال حاضر گزینه پیشفرض GnuTLS است. علاوه بر این، Wget از سازوکار HSTS (امنیت انتقال اکید HTTP) نیز پشتیبانی میکند. در صورتی که Wget بدون پشتیبانی از SSL ساخته شده باشد، هیچیک از این گزینهها در دسترس نخواهند بود.
- --secure-protocol=protocol
- انتخاب
پروتکل امن
مورد
استفاده.
مقادیر
مجاز
عبارتند از
auto، SSLv2، SSLv3،
TLSv1، TLSv1_1، TLSv1_2،
TLSv1_3 و PFS. در
صورت
استفاده از
auto،
کتابخانه SSL
مجاز است
پروتکل
مناسب را به
طور خودکار
برگزیند که
این امر با
ارسال درود
اولیه TLSv1
حاصل
میشود. این
حالت
پیشفرض
است.
تعیین مقادیر SSLv2، SSLv3، TLSv1، TLSv1_1، TLSv1_2 یا TLSv1_3 استفاده از پروتکل متناظر را اجباری میکند. این مورد هنگام ارتباط با سرورهای قدیمی با پیادهسازیهای معیوب SSL که انتخاب پروتکل را برای کتابخانه دشوار میکنند کاربرد دارد.
تعیین PFS استفاده از مجموعهرمزهای دارای رازداری پیشرو کامل (Perfect Forward Security) را اجباری میسازد. به طور خلاصه، PFS با ایجاد یک کلید یکبارمصرف برای هر اتصال SSL امنیت را ارتقا میدهد که بار پردازشی اندکی بیشتر بر کلاینت و سرور تحمیل میکند. در این حالت از رمزهای ایمن شناختهشده و پروتکل TLS استفاده میشود و روشهای تبادل کلید فاقد PFS (مانند RSA) صریحاً کنار گذاشته میشوند.
- --https-only
- در حالت بازگشتی، تنها پیوندهای HTTPS دنبال میشوند.
- --ciphers
- تنظیم رشته فهرست مجموعهرمزها (cipher list). این رشته معمولاً الگوریتمهای رمزنگاری و سایر گزینههای مورد نظر کاربر را به ترتیب اولویت تعیین میکند (که در GnuTLS به آن «رشته اولویت» گفته میشود). این رشته عیناً به موتور SSL/TLS (اوپناساسال یا GnuTLS) ارسال میشود و ساختار آن وابسته به آن موتور است. Wget دخل و تصرفی در آن انجام نمیدهد.
- --no-check-certificate
- بررسی
نکردن
گواهی سرور
در برابر
مراجع
معتبر صدور
گواهی (CA) و
عدم الزام
به مطابقت
نام میزبان
در نشانی وب
با نام
مشترک (Common Name)
ارائهشده
در گواهی.
از نگارش Wget 1.10 به بعد، رفتار پیشفرض اعتبارسنجی گواهی سرور در برابر مراجع معتبر است و در صورت عدم تایید، دستتکانی SSL متوقف و دانلود لغو میگردد. اگرچه این امر دانلود امنتری را فراهم میسازد، اما سازگاری با برخی سایتها با گواهیهای خودامضاشده (self-signed)، منقضی یا نامعتبر را با مشکل روبرو میکند. این گزینه حالتی «ناامن» را اجبار میکند که خطاهای گواهی را به هشدار تبدیل کرده و اجازه ادامه دانلود را میدهد.
تنها در صورتی از این گزینه استفاده کنید که از اصالت سایت اطمینان دارید یا صحت گواهی آن برای شما اهمیتی ندارد. برای گواهیهای خودامضا یا داخلی، توصیه میشود گواهی مربوطه را دریافت کرده و با آن اعتبارسنجی کنید تا اینکه از این حالت ناامن استفاده نمایید. برای حذف هشدارها میتوانید از --check-certificate=quiet استفاده کنید، اگرچه در اغلب موارد کاری نادرست است.
- --certificate=file
- استفاده از گواهی کلاینت ذخیرهشده در file. این گزینه برای سرورهایی که اتصال کلاینت را منوط به ارائه گواهی میکنند ضروری است.
- --certificate-type=type
- تعیین نوع گواهی کلاینت. مقادیر مجاز PEM (پیشفرض) و DER (همچنین شناختهشده با عنوان ASN1) هستند.
- --private-key=file
- خواندن کلید خصوصی از file. این گزینه امکان ارائه کلید خصوصی در فایلی مجزا از گواهی را فراهم میکند.
- --private-key-type=type
- تعیین نوع کلید خصوصی. مقادیر پذیرفتهشده PEM (پیشفرض) و DER هستند.
- --ca-certificate=file
- استفاده از
file به عنوان
فایل حاوی
بستهای از
مراجع صدور
گواهی ("CA")
جهت تایید
هویت طرف
مقابل. این
گواهیها
باید در
قالب PEM
باشند.
بدون این گزینه، Wget گواهیهای CA را در مسیرهای پیشفرض سیستم جستجو میکند.
- --ca-directory=directory
- تعیین دایرکتوری حاوی گواهیهای CA در قالب PEM. هر فایل حاوی یک گواهی CA است و نام فایل بر اساس مقدار هش برگرفته از گواهی (با ابزار "c_rehash") تعیین میشود. استفاده از --ca-directory در مواردی که تعداد گواهیها زیاد است کارایی بالاتری نسبت به --ca-certificate دارد، چرا که گواهیها بر حسب نیاز فراخوانی میشوند.
- --crl-file=file
- تعیین فایل فهرست ابطال گواهی (CRL) در file. این گزینه برای بررسی گواهیهایی که توسط CA باطل شدهاند لازم است.
- --pinnedpubkey=file/hashes
- دستور به Wget
برای
استفاده از
فایل کلید
عمومی
مشخصشده
(یا مقادیر
هش) جهت
تایید هویت
سرور (Public Key Pinning).
این مقدار
میتواند
مسیر یک
فایل حاوی
کلید عمومی
با فرمت PEM یا DER
باشد، یا
تعدادی هش sha256
کدگذاریشده
با base64 که
پیشوند "sha256//"
داشته و با
";" از هم جدا
شدهاند.
هنگام مذاکره اتصال TLS، کلید عمومی از گواهی استخراج شده و در صورت عدم تطابق دقیق، Wget اتصال را پیش از ارسال یا دریافت هرگونه داده قطع میکند.
- --random-file=file
- [فقط در OpenSSL و LibreSSL] استفاده از file به عنوان منبع دادههای تصادفی برای مقداردهی اولیه تولیدکننده اعداد شبهتصادفی در سیستمهای فاقد /dev/urandom.
- --egd-file=file
- [فقط در OpenSSL] استفاده از file به عنوان سوکت EGD (دیمن جمعآوری انتروپی). در سیستمهای یونیکس امروزی که از /dev/urandom پشتیبانی میکنند به EGD نیازی نیست.
- --no-hsts
- ابزار Wget به صورت پیشفرض از قابلیت HSTS (امنیت انتقال اکید HTTP، طبق RFC 6797) پشتیبانی میکند. با گزینه --no-hsts، Wget تمام هدرهای "Strict-Transport-Security" را نادیده گرفته و هیچ سیاست HSTS را اعمال نخواهد کرد.
- --hsts-file=file
- به طور
پیشفرض Wget
پایگاه
داده HSTS خود
را در ~/.wget-hsts
ذخیره
میکند.
میتوانید
با --hsts-file این
مسیر را
تغییر دهید.
پایگاه داده HSTS یک فایل متنی ساده است که هر سطر آن شامل اطلاعات یک ورودی HSTS معتبر است. سطرهایی که با نشانه "#" شروع شوند نادیده گرفته میشوند. دستکاری دستی این فایل عموماً توصیه نمیشود.
ساختار هر سطر ورودی HSTS شامل فیلدهای زیر است که با فاصله جدا شدهاند:
"<hostname> SP [<port>] SP <include subdomains> SP <created> SP <max-age>"
پیش از نوشتن ورودیهای بهروزرسانیشده، Wget فایل را مجدداً خوانده و تغییرات را ادغام میکند تا از بازنویسی تنظیمات سایر فرآیندهای Wget جلوگیری شود.
- --warc-file=file
- استفاده از file به عنوان فایل مقصد WARC (آرشیو وب).
- --warc-header=string
- درج رشته string در رکورد warcinfo.
- --warc-max-size=size
- تنظیم حداکثر اندازه مجاز فایلهای WARC بر روی size.
- --warc-cdx
- نوشتن فایلهای فهرست و شاخص CDX.
- --warc-dedup=file
- عدم ذخیرهسازی رکوردهایی که در فایل CDX مشخصشده فهرست شدهاند (حذف موارد تکراری).
- --no-warc-compression
- عدم فشردهسازی فایلهای WARC با استفاده از GZIP.
- --no-warc-digests
- محاسبه نکردن چکسامهای خلاصهساز SHA1.
- --no-warc-keep-log
- عدم ذخیره فایل لاگ درون رکورد WARC.
- --warc-tempdir=dir
- تعیین دایرکتوری برای ذخیرهسازی فایلهای موقت ایجادشده توسط بخش نگارش WARC.
گزینههای FTP (FTP Options)
- --ftp-user=user
- --ftp-password=password
- تعیین نام
کاربری user و
گذرواژه password
بر روی سرور
FTP. بدون این
گزینه یا
گزینه
راهاندازی
متناظر آن،
گذرواژه به
صورت
پیشفرض بر
روی -wget@
تنظیم
میشود که
معمولاً
برای FTP
ناشناس (Anonymous)
به کار
میرود.
روش دیگر تعیین نام کاربری و گذرواژه در خود نشانی وب است. هر دو روش رمز عبور را برای کسانی که دستور "ps" را اجرا کنند فاش میسازد. برای جلوگیری از مشاهده، گذرواژهها را در فایلهای .wgetrc یا .netrc با مجوزهای محافظتشده نگهداری کنید.
- --no-remove-listing
- عدم حذف
فایلهای
موقت .listing
ایجادشده
در
دریافتهای
FTP. به طور
معمول این
فایلها
حاوی فهرست
خام
دایرکتوری
دریافتی از
سرورهای FTP
هستند.
نگهداشتن
آنها برای
مقاصد
اشکالزدایی
یا بررسی
محتویات
دایرکتوریهای
سرور
دوردست
بسیار
کاراست.
کاربر "root" هرگز نباید Wget را در دایرکتوری کاربری غیرقابل اعتماد اجرا کند، زیرا کاربر میتواند با پیوند نمادین index.html به /etc/passwd و درخواست از root برای اجرای Wget با -N یا -r موجب بازنویسی فایلهای سیستمی شود.
- --no-glob
- خاموش کردن
قابلیت بسط
نام
فایلها (globbing)
در FTP. بسط
الگوها به
استفاده از
نویسههای
عمومی شل
مانند *، ?،
[ و ] برای
دریافت
همزمان
چندین فایل
از یک
دایرکتوری
اطلاق
میشود:
wget ftp://gnjilux.srk.fer.hr/*.msg
به طور پیشفرض، اگر نشانی حاوی کاراکتر بسط باشد، این ویژگی فعال خواهد بود. با این گزینه میتوان آن را به طور دائم خاموش کرد.
- --no-passive-ftp
- غیرفعال
کردن حالت
انتقال
غیرفعال (passive)
در FTP. حالت
منفعل
ایجاب
میکند که
کلاینت
برای
برقراری
اتصال داده
به سرور
متصل شود نه
برعکس.
در پشت فایروالها و پیکربندیهای NAT، حالت منفعل شانس بیشتری برای کارکرد درست دارد. با این حال در برخی شرایط نادر فایروال، حالت فعال (active) عملکرد بهتری نشان میدهد.
- --preserve-permissions
- حفظ دسترسیها و مجوزهای فایلهای دوردست به جای استفاده از دسترسیهای تعیینشده توسط umask سیستم محلی.
- --retr-symlinks
- به صورت
پیشفرض،
هنگام
دریافت
بازگشتی
دایرکتوریهای
FTP و مواجهه
با پیوند
نمادین،
پیوند
نمادین
پیمایش شده
و فایلهای
مقصد
دریافت
میشوند. در
حال حاضر Wget
پیوندهای
نمادین به
دایرکتوریها
را برای
دانلود
بازگشتی
آنها
دنبال
نمیکند.
هنگامی که --retr-symlinks=no تعیین شود، فایل لینکشده دانلود نمیشود؛ بلکه یک پیوند نمادین متناظر روی فایلسیستم محلی ایجاد میگردد. این گزینه خطری امنیتی در پی دارد که یک سرور FTP مخرب بتواند فایلهایی خارج از دایرکتوریهای مورد نظر ایجاد نماید.
توجه داشته باشید هنگام دریافت فایلی که صریحاً در خط فرمان مشخص شده باشد، این گزینه اثری ندارد و پیوندهای نمادین همواره پیمایش میشوند.
گزینههای FTPS (FTPS Options)
- --ftps-implicit
- دستور به Wget برای استفاده از FTPS به صورت ضمنی (implicit). حالت ضمنی شامل راهاندازی SSL/TLS از همان ابتدای اتصال کنترل است و دستور "AUTH TLS" ارسال نمیکند. در صورت عدم تعیین پورت صریح، پورت پیشفرض FTPS ضمنی (990) به جای پورت استاندارد (21) استفاده خواهد شد.
- --no-ftps-resume-ssl
- عدم ازسرگیری نشست SSL/TLS در کانال انتقال داده. در حالت عادی Wget تلاش میکند نشست SSL/TLS آغازشده در اتصال کنترل را در اتصال داده نیز بازاستفاده کند تا از دستتکانی مجدد جلوگیری شود. این گزینه ایجاد یک نشست جدید SSL/TLS برای هر اتصال داده را اجبار میکند.
- --ftps-clear-data-connection
- انتقال تمام اتصالات داده به صورت متن آشکار (Plain Text) و اعمال SSL/TLS تنها بر روی اتصال کنترل. Wget دستور "PROT C" را برای این کار ارسال میکند که باید توسط سرور تایید شود.
- --ftps-fallback-to-ftp
- بازگشت به پروتکل FTP عادی در صورتی که سرور مقصد از FTPS پشتیبانی نکند. به دلایل امنیتی این گزینه به صورت پیشفرض فعال نیست و رفتار پیشفرض خروج با خطا است.
گزینههای دریافت بازگشتی (Recursive Retrieval Options)
- -r
- --recursive
- فعال کردن دریافت بازگشتی. حداکثر عمق پیشفرض ۵ لایه است.
- -l depth
- --level=depth
- تنظیم
حداکثر عمق
بازگشت به
درون
زیرپوشهها
به میزان depth.
به منظور
جلوگیری از
دانلود
تصادفی
وبسایتهای
بسیار
حجیم، این
مقدار در
حالت
پیشفرض به
۵ محدود شده
است؛ بدین
معنی که
حداکثر ۵
سطح
دایرکتوری
را از نشانی
اولیه
پیمایش
خواهد کرد.
مقدار -l 0 یا -l inf را برای عمق نامحدود بازگشتی تعیین کنید.
wget -r -l 0 http://<site>/1.html
ممکن است انتظار داشته باشید این دستور تنها فایل 1.html را دانلود کند، اما چنین نیست؛ چرا که -l 0 معادل -l inf (بازگشت نامحدود) است. برای دانلود یک صفحه منفرد یا چند صفحه مشخص، آنها را در خط فرمان وارد کرده و گزینههای -r و -l را حذف کنید. برای دریافت ملزومات یک صفحه، به گزینه --page-requisites رجوع نمایید.
- --delete-after
- این گزینه
به Wget دستور
میدهد که
هر فایل
دانلودشده
را پس از
پایان
دریافت آن
حذف کند.
این قابلیت
برای
پیشبارگیری
(pre-fetching) صفحات
محبوب از
طریق
پراکسی
کاربرد
دارد:
wget -r -nd --delete-after http://whatever.com/~popular/page
توجه داشته باشید که --delete-after فایلها را بر روی سیستم محلی حذف میکند و دستور حذفی به سرورهای دوردست ارسال نمیدارد. در صورت تعیین این گزینه، تبدیل پیوندها نادیده گرفته میشود.
- -k
- --convert-links
- پس از اتمام
کامل
دانلود،
پیوندهای
درون اسناد
را تبدیل
میکند تا
برای
مشاهده
محلی و
آفلاین
مناسب شوند.
این تغییر
علاوه بر
ابرپیوندهای
مرئی، بر
کلیه
بخشهایی
که به منابع
خارجی
پیوند
دارند
(مانند
تصاویر
درونمتنی،
شیوهنامههای
CSS،
رسانهها و
غیره) نیز
اعمال
میگردد.
هر پیوند به یکی از دو شیوه زیر تغییر خواهد یافت:
- پیوندهای
مربوط به
فایلهایی
که توسط Wget
دانلود
شدهاند،
به پیوند
نسبی
متناظر با
فایل محلی
تبدیل
میشوند.
برای مثال اگر فایل /foo/doc.html به /bar/img.gif پیوند داشته باشد و هر دو دانلود شده باشند، پیوند درون doc.html به ../bar/img.gif تغییر خواهد یافت.
- پیوندهای
مربوط به
فایلهایی
که توسط Wget
دانلود
نشدهاند،
به نشانی
مطلق
اینترنتی
شامل نام
میزبان و
مسیر کامل
تبدیل
میشوند.
برای مثال اگر فایل /foo/doc.html به /bar/img.gif اشاره کند اما تصویر دانلود نشده باشد، پیوند به http://hostname/bar/img.gif تغییر میکند.
این فرآیند تضمین میکند که مرور صفحات دانلودشده به صورت محلی کاملاً بینقص انجام شود. از آنجا که Wget تنها در انتهای فرآیند دانلود متوجه میشود چه فایلهایی دریافت شدهاند، عملیات گزینه -k در پایان تمامی دانلودها اجرا میگردد.
- --convert-file-only
- این گزینه
تنها بخش
نام فایل از
نشانی وب را
تبدیل کرده
و بقیه
قسمتهای URL
را
دستنخورده
باقی
میگذارد.
این قابلیت به ویژه در کنار --adjust-extension برای پر کردن حافظه نهان (کش) اینترنت با فایلهای دانلودشده از میزبانهای مختلف مفید است.
- -K
- --backup-converted
- هنگام تبدیل پیوندهای یک فایل، یک نسخه پشتیبان از فایل اصلی با پسوند .orig ذخیره میکند. این گزینه بر نحوه کارکرد گزینه -N اثرگذار است.
- -m
- --mirror
- فعال کردن گزینههای مناسب برای آینهداری (mirroring). این گزینه دریافت بازگشتی و برچسبگذاری زمانی را فعال کرده، عمق بازگشت را نامحدود قرار میدهد و فایلهای فهرستبندی FTP را حفظ میکند. این گزینه در حال حاضر معادل -r -N -l inf --no-remove-listing است.
- -p
- --page-requisites
- این گزینه
موجب
میشود Wget
تمامی
فایلهای
پیشنیاز
جهت نمایش
درست یک
صفحه HTML را
دریافت کند.
این
ملزومات
شامل
تصاویری که
در متن قرار
دارند،
صداها، و
شیوهنامههای
CSS ارجاع
دادهشده
هستند.
در حالت عادی با دانلود یک صفحه منفرد HTML، فایلهای پیشنیاز آن دانلود نمیشوند. با استفاده از این گزینه، فایل اصلی به همراه کلیه ملزومات بصری آن دریافت میگردد.
دستور زیر نحوه دریافت یک صفحه به همراه تمام ملزومات را نشان میدهد:
wget -p http://<site>/1.html
در این حالت پیوندهای درون صفحه به اسناد خارجی دیگر دنبال نخواهند شد. برای دانلود کامل یک صفحه به شکلی که برای نمایش محلی مناسب باشد، نویسنده ترکیب گزینههای زیر را پیشنهاد میدهد:
wget -E -H -k -K -p http://<site>/<document>
- --strict-comments
- فعالسازی
تحلیل دقیق
و
سختگیرانه
یادداشتها
(کامنتها)
در HTML بر اساس
استانداردهای
SGML. در حالت
عادی و به
صورت
پیشفرض،
متن کامنت
با نخستین
مشاهده
عبارت -->
پایانیافته
تلقی
میشود.
از نگارش 1.9 به بعد، Wget برای جلوگیری از بروز خطا در صفحاتی که استانداردها را به دقت رعایت نمیکنند، روش عمومی را در پیش گرفته است؛ با این گزینه میتوانید حالت تحلیل دقیق را فعال فرمایید.
گزینههای پذیرش/رد بازگشتی (Recursive Accept/Reject Options)
- -A acclist --accept acclist
- -R rejlist --reject rejlist
- تعیین فهرستی جداشده با کاما از پسوندها یا الگوهای نام فایل جهت پذیرش یا رد. در صورتی که هر یک از کاراکترهای عمومی *، ?، [ یا ] در مقادیر ظاهر شوند، آن مورد به عنوان الگو (pattern) در نظر گرفته خواهد شد نه پسوند ساده. در این صورت الگو را درون نقلقول قرار دهید تا توسط شل بسط داده نشود، مانند -A "*.mp3".
- --accept-regex urlregex
- --reject-regex urlregex
- تعیین یک عبارت باقاعده (Regex) جهت پذیرش یا رد کل نشانی اینترنتی (URL).
- --regex-type regextype
- تعیین نوع عبارت باقاعده. مقادیر ممکن عبارتند از posix یا pcre. برای استفاده از نوع pcre، باید Wget با پشتیبانی از libpcre کامپایل شده باشد.
- -D domain-list
- --domains=domain-list
- تعیین دامنههایی که باید دنبال شوند. مقدار domain-list فهرستی جداشده با کاما از دامنهها است. توجه داشته باشید که این گزینه به خودی خود -H را فعال نمیکند.
- --exclude-domains domain-list
- تعیین دامنههایی که نباید دنبال شوند.
- --follow-ftp
- دنبال کردن پیوندهای FTP از درون اسناد HTML. بدون این گزینه، Wget تمامی پیوندهای FTP را نادیده میگیرد.
- --follow-tags=list
- ابزار Wget جدولی داخلی از جفتهای تگ/مشخصه در HTML دارد که هنگام جستجوی اسناد پیوندشده در دریافت بازگشتی به آنها مراجعه میکند. با این گزینه میتوانید تعیین کنید که تنها زیرمجموعه مشخصی از تگها بررسی شوند.
- --ignore-tags=list
- نقطه مقابل گزینه --follow-tags؛ نادیده گرفتن تگهای تعیینشده در یک فهرست جداشده با کاما در هنگام دریافت بازگشتی.
- --ignore-case
- صرفنظر کردن از بزرگی و کوچکی حروف در هنگام تطابق نام فایلها و دایرکتوریها. این گزینه بر رفتار گزینههای -R، -A، -I و -X و همچنین بسط الگوها در سایتهای FTP اثر میگذارد.
- -H
- --span-hosts
- فعالسازی عبور از مرزهای میزبان (span-hosts) در حین دریافت بازگشتی، جهت دنبال کردن پیوندهایی که به سرورهای دیگر اشاره دارند.
- -L
- --relative
- تنها دنبال کردن پیوندهای نسبی. برای دریافت یک صفحه خانگی بدون پراکندگی بسیار سودمند است.
- -I list
- --include-directories=list
- تعیین فهرستی جداشده با کاما از دایرکتوریهایی که مایلید در طول دانلود دنبال شوند. اعضای list میتوانند حاوی کاراکترهای عمومی (wildcard) باشند.
- -X list
- --exclude-directories=list
- تعیین فهرستی جداشده با کاما از دایرکتوریهایی که میخواهید از فرآیند دانلود مستثنا شوند.
- -np
- --no-parent
- عدم صعود به دایرکتوری والد در هنگام دریافت بازگشتی. این گزینه تضمین میکند که تنها فایلهای پایینتر از یک سلسلهمراتب مشخص دانلود خواهند شد.
متغیرهای محیطی (ENVIRONMENT)
ابزار Wget از پراکسیها برای هر دو نوع دریافت HTTP و FTP پشتیبانی میکند. روش استاندارد جهت تعیین موقعیت پراکسی که برای Wget قابل شناسایی است، استفاده از متغیرهای محیطی زیر میباشد:
- http_proxy
- https_proxy
- در صورت تنظیم، متغیرهای http_proxy و https_proxy باید به ترتیب حاوی نشانیهای وب سرورهای پراکسی برای اتصالات HTTP و HTTPS باشند.
- ftp_proxy
- این متغیر باید حاوی نشانی وب پراکسی برای اتصالات FTP باشد. بسیار متداول است که هر دو متغیر http_proxy و ftp_proxy روی یک نشانی یکسان تنظیم شوند.
- no_proxy
- این متغیر باید شامل فهرستی جداشده با کاما از پسوندهای دامنه باشد که پراکسی نباید برای آنها استفاده شود. برای نمونه اگر مقدار no_proxy برابر .mit.edu باشد، پراکسی برای دریافت اسناد از دانشگاه MIT استفاده نخواهد شد.
وضعیت خروج (EXIT STATUS)
ابزار Wget در صورت مواجهه با مشکل، ممکن است یکی از کدهای خطای زیر را بازگرداند:
- 0
- هیچ مشکلی رخ نداد (موفقیتآمیز).
- 1
- کد خطای عمومی.
- 2
- خطای تحلیل (Parse error)؛ برای نمونه هنگام تجزیه گزینههای خط فرمان، یا خطوط فایل .wgetrc یا .netrc...
- 3
- خطای ورودی/خروجی فایل (File I/O).
- 4
- شکست و خطای شبکه.
- 5
- شکست در اعتبارسنجی گواهی SSL.
- 6
- شکست در احراز هویت نام کاربری/گذرواژه.
- 7
- خطاهای پروتکل شبکه.
- 8
- سرور پاسخ خطا ارسال کرد.
به استثنای کدهای ۰ و ۱، کدهای خروج با شماره کوچکتر در هنگام مواجهه با چندین نوع خطا، اولویت بالاتری نسبت به کدهای با شماره بزرگتر دارند.
در نگارشهای پیش از 1.12، وضعیت خروج Wget معمولاً ناهمگون و کمفایده بود. دانلودهای بازگشتی تقریباً همیشه مقدار ۰ (موفقیت) را بازمیگرداندند و دانلودهای غیربازگشتی تنها وضعیت متناظر با آخرین فایل دریافتشده را گزارش میکردند.
فایلها (FILES)
- /usr/local/etc/wgetrc
- محل پیشفرض فایل راهاندازی و پیکربندی سراسری (global).
- .wgetrc
- فایل راهاندازی و تنظیمات اختصاصی کاربر.
اشکالات (BUGS)
شما میتوانید گزارشهای اشکالات را از طریق سامانه رهگیری باگهای GNU Wget (به نشانی <https://savannah.gnu.org/bugs/?func=additem&group=wget>) یا از طریق فهرست پستی <bug-wget@gnu.org> ارسال فرمایید.
برای دریافت اطلاعات بیشتر (نحوه عضویت، بایگانی فهرست و غیره) از نشانی https://lists.gnu.org/mailman/listinfo/bug-wget بازدید فرمایید.
پیش از ارسال گزارش باگ، لطفاً دستورالعملهای ساده زیر را مد نظر قرار دهید:
- 1.
- ابتدا مطمئن شوید رفتاری که مشاهده میکنید واقعاً یک اشکال است. اگر Wget کرش کند یا مطابق مستندات عمل نکند، یک باگ است.
- 2.
- سعی کنید
باگ را در
سادهترین
شرایط ممکن
بازتولید
کنید؛
مثلاً با
مجموعهای
خلاصهتر
از
گزینهها
امتحان
نمایید.
ارسال کل محتویات فایل .wgetrc در گزارش معمولاً مناسب نیست، مگر آنکه مشخص شود خطای رخداده مستقیماً به تنظیمات درون آن وابسته است.
- 3.
- لطفاً Wget را با گزینه -d اجرا کرده و خروجی آن را ارسال کنید. توجه فرمایید که پیش از ارسال، اطلاعات حساس و محرمانه (نظیر گذرواژهها) را از لاگ خروجی پاک نمایید، چرا که گزارشها در دسترس عموم بایگانی میشوند.
- 4.
- در صورتی که Wget کرش کرده است، سعی کنید آن را با یک دیباگر مانند gdb اجرا نموده و با دستور "where" ردگیری پشته (backtrace) را استخراج کنید.
همچنین ببینید (SEE ALSO)
این راهنما، مستندات کامل ابزار GNU Wget نیست. برای دسترسی به توضیحات تفصیلیتر و کلیه دستورات قابل استفاده در فایلهای .wgetrc و گزینه -e، به بخش Info گنو برای دستور wget مراجعه فرمایید.
همچنین راهنمای wget2(1) را ببینید که نگارش بهروزشده با پشتیبانی بهتر از دانلود بازگشتی و پروتکلهای مدرن مانند HTTP/2 است.
نویسندگان (AUTHORS)
نگارش اولیه توسط Hrvoje Nikšić <hniksic@xemacs.org>. در حال حاضر توسط Darshit Shah <darnir@gnu.org> و Tim Rühsen <tim.ruehsen@gmx.de> نگهداری میشود.
حق نشر (COPYRIGHT)
حق نشر © 1996--2011, 2015, 2018--2024 بنیاد نرمافزارهای آزاد (Free Software Foundation, Inc.)
مجوز کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نگارش 1.3 یا هر نگارش بعدی منتشرشده توسط بنیاد نرمافزارهای آزاد اعطا میشود.
| 2026-07-15 | GNU Wget 1.25.0 |