رفتن به محتوای اصلی
iServer24 | ارائه‌کننده سرورهای ابری و اختصاصی
آموزش دانلود فایل‌ها با cURL

آموزش دانلود فایل‌ها با cURL

cURL یک ابزار خط فرمان سبک و قدرتمند برای دانلود فایل‌ها و ارتباط با سرورهاست که از پروتکل‌های متنوعی مانند HTTP، HTTPS، FTP و SFTP پشتیبانی می‌کند. با قابلیت‌هایی مثل دنبال کردن ریدایرکت‌ها، مدیریت احراز هویت، ادامه دانلود نیمه‌کاره و اسکریپت‌نویسی، cURL برای مدیران سرور و توسعه‌دهندگان، به‌ویژه در کار با APIها و پروژه‌های CI/CD، ابزاری حیاتی محسوب می‌شود.

آموزش دانلود فایل با cURL در لینوکس

به‌روزرسانی: 27 می 2025 پیش از هر کاری، مطمئن شوید که با اتصال SSH به سرور خود متصل شده‌اید.

cURL (مخفف Client URL) یک ابزار خط فرمان و کتابخانه قدرتمند برای انتقال داده بین سیستم‌هاست. این ابزار از پروتکل‌های متعددی مانند HTTP، HTTPS، FTP و … پشتیبانی می‌کند و معمولاً به‌صورت پیش‌فرض روی اکثر سیستم‌عامل‌های شبه‌یونیکس نصب است. به‌دلیل در دسترس بودن و انعطاف‌پذیری بالا، cURL یکی از بهترین گزینه‌ها برای دانلود فایل‌ها در محیط‌های سروری محسوب می‌شود.

در این آموزش یاد می‌گیرید چگونه با استفاده از دستور

curl
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
یک فایل را از اینترنت دانلود کنید، محتوای آن را ببینید، با نام دلخواه ذخیره کنید، ریدایرکت‌ها را دنبال کنید و دانلودهای امن‌تر و پایدارتر داشته باشید. این دانش به‌ویژه هنگام کار با REST APIها، اسکریپت‌ها و پروژه‌های Node.js بسیار کاربردی است.

 

⚠️ هشدار امنیتی: دانلود فایل از اینترنت همیشه می‌تواند خطرناک باشد. فقط از منابع معتبر فایل دریافت کنید و قبل از اجرای هر اسکریپت، حتماً محتوای آن را بررسی کنید.


مرحله ۱ — دریافت فایل از سرور (Fetch)

اگر دستور

curl
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
را بدون هیچ گزینه‌ای اجرا کنید، فایل را دریافت کرده و محتوای آن را مستقیماً در خروجی ترمینال نمایش می‌دهد.

 

مثال: دریافت فایل

robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
از وب‌سایت DigitalOcean:

 

curl https://www.digitalocean.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

خروجی:

7 خط
User-agent: *
Disallow:

sitemap: https://www.digitalocean.com/sitemap.xml
sitemap: https://www.digitalocean.com/community/main_sitemap.xml.gz
sitemap: https://www.digitalocean.com/community/questions_sitemap.xml.gz
sitemap: https://www.digitalocean.com/community/users_sitemap.xml.gz
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

ذخیره فایل روی سیستم (Saving Remote Files)

برای ذخیره فایل دانلودشده با همان نام اصلی روی سیستم، از گزینه

-O
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
یا
--remote-name
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
استفاده کنید:

 

curl -O https://www.digitalocean.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

در این حالت، به‌جای نمایش محتوا، یک نوار پیشرفت نمایش داده می‌شود و فایل ذخیره می‌گردد.

برای مشاهده فایل:

cat robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله ۲ — ذخیره فایل با نام دلخواه

اگر نمی‌خواهید فایل با نام اصلی ذخیره شود یا از overwrite شدن فایل‌های قبلی جلوگیری کنید، از گزینه

-o
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
استفاده کنید:

 

curl -o do-bots.txt https://www.digitalocean.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

سپس بررسی فایل:

cat do-bots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله ۳ — دنبال کردن ریدایرکت‌ها (Redirect)

به‌صورت پیش‌فرض، cURL ریدایرکت‌ها را دنبال نمی‌کند. برای مثال اگر آدرس از HTTP به HTTPS منتقل شود، باید از گزینه

-L
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
استفاده کنید.

 

بررسی هدرها:

curl -I www.digitalocean.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

برای دنبال کردن ریدایرکت:

curl -L www.digitalocean.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

ذخیره فایل همراه با ریدایرکت:

curl -L -o do-bots.txt www.digitalocean.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله ۴ — دانلود فایل با احراز هویت

احراز هویت ساده (نام کاربری و رمز عبور)

curl -u username:password -O https://example.com/securefile.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

احراز هویت توکنی (Bearer Token)

curl -H "Authorization: Bearer YOUR_TOKEN" -O https://api.example.com/protected/data.json
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

توصیه امنیتی: اطلاعات حساس را در اسکریپت‌ها هاردکد نکنید. از متغیرهای محیطی استفاده کنید.


مرحله ۵ — مدیریت قطع ارتباط، زمان انتظار و ادامه دانلود

ادامه دانلود نیمه‌کاره

curl -C - -O https://example.com/largefile.iso
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

تعیین حداکثر زمان دانلود

curl --max-time 30 -O https://example.com/file.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

تلاش مجدد در صورت خطا

curl --retry 3 -O https://example.com/file.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله ۶ — خودکارسازی دانلود با اسکریپت Shell

نمونه اسکریپت ساده:

4 خط
#!/bin/bash
URL="https://example.com/file.zip"
DEST="/home/user/downloads/file.zip"
curl -L -o "$DEST" "$URL"
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

سپس:

chmod +x script.sh
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

و می‌توانید آن را با

cron
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
زمان‌بندی کنید.

 


مرحله ۷ — رفع مشکلات رایج دانلود

بررسی هدرها

curl -I https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

تنظیم User-Agent

curl -A "Mozilla/5.0" -O https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

بررسی خطاهای SSL

curl -v -O https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

استفاده از HTTP به‌جای HTTPS (در صورت امکان)

curl -O http://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله ۸ — استفاده از wget به‌عنوان جایگزین

دانلود ساده

wget https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

قابلیت‌های مهم wget

  • تلاش مجدد خودکار:

wget -t 3 https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
  • دانلود در پس‌زمینه:

  • wget -b https://example.com/file.zip
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
  • محدود کردن سرعت:

  • wget --limit-rate=200k https://example.com/file.zip
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
  • میرور کردن وب‌سایت:

  • wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://example.com
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    چه زمانی curl و چه زمانی wget؟

    • curl: تعامل با APIها، درخواست‌های پیچیده HTTP، اسکریپت‌نویسی حرفه‌ای

    • wget: دانلودهای ساده، دانلود بازگشتی، میرور سایت‌ها


    سوالات متداول (FAQ)

    تفاوت -O و -o در curl چیست؟

    •  

    -O
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
    فایل را با نام اصلی ذخیره می‌کند.

     

  •  

  • -o
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
    امکان تعیین نام دلخواه را می‌دهد.

     

    ادامه دانلود قطع‌شده چگونه است؟

    curl -C - -O https://example.com/largefile.iso
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    آیا cURL روی ویندوز وجود دارد؟

    بله، از ویندوز 10 به بعد به‌صورت پیش‌فرض وجود دارد و همچنین از طریق Git Bash، Cygwin یا Chocolatey قابل نصب است.

    دانلود چند فایل هم‌زمان

    curl -O https://example.com/file1.zip -O https://example.com/file2.zip
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    یا:

    curl -O https://example.com/file{1..5}.zip
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    جمع‌بندی

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

    برای انتقال امن فایل‌ها بین سیستم شما و سرور، می‌توانید از راهنمای استفاده از SFTP نیز استفاده کنید.

    برای مطالعه بیشتر، راهنمای کامل را ببینید:

    man curl
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

     

    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    زیرساخت ابری برای اجرای همین آموزش

    سرور ابری ساعتی را برای Docker، Ubuntu و DevOps راه‌اندازی کنید — پرداخت به میزان مصرف یا ماهانه.

    ادامه یادگیری:Docker·Ubuntu·VPS