علاوه بر روشهای گرافیکی برای انتقال فایل، یکی از سریعترین و قدرتمندترین راهها برای انتقال فایل به سرور لینوکسی (و برعکس)، استفاده از دستور scp مخفف Secure Copy (کپی امن) است. scp مستقیماً ازطریق خط فرمان (ترمینال) کامپیوتر شما اجرا میشود و نیازی به نصب هیچ نرمافزار جانبی ندارد. این دستور روی سیستمعاملهای macOS، لینوکس و همچنین نسخههای جدید ویندوز (۱۰ و ۱۱) بهصورت پیشفرض در دسترس است.
در این راهنما، ما هر دو سناریوی آپلود و دانلود فایل با scp را بررسی خواهیم کرد.
پیشنیاز: باز کردن ترمینال
- در ویندوز: برنامهی Command Prompt یا PowerShell را باز کنید.
- در macOS یا لینوکس: برنامهی Terminal را باز کنید.
آپلود فایل (انتقال از کامپیوتر به سرور)
در این سناریو، میخواهیم فایلی را از کامپیوتر محلی (Local) خود به سرور راه دور (Remote) منتقل کنیم.
ساختار کلی دستور
ساختار دستور scp برای آپلود به این شکل است:
scp [مسیر فایل مبدأ روی کامپیوتر] [نام کاربری]@[IP سرور]:[مسیر مقصد روی سرور]
مثال عملی:
فرض کنید فایلی به نام blog-list.xlsx روی دسکتاپ کامپیوتر خود داریم و میخواهیم آن را به پوشهی /home/ubuntu در سرور منتقل کنیم.
۱. ابتدا، با دستور cd (Change Directory) به پوشهای که فایلتان در آن قرار دارد بروید (مثلاً دسکتاپ).
cd Desktop
۲. حالا دستور scp را اجرا کنید:
scp blog-list.xlsx ubuntu@87.236.166.113:/home/ubuntu/
تحلیل دستور:
- scp: دستور شروع انتقال.
- blog-list.xlsx: فایل مبدأ روی کامپیوتر ما.
- ubuntu@87.236.166.113: مشخصات سرور (نام کاربری ubuntu و آدرس IP).
- :/home/ubuntu/: مسیر مقصد روی سرور (توجه به : قبل از مسیر).
پساز فشردن Enter، از شما رمز عبور سرور درخواست میشود. رمز را تایپ کنید و Enter بزنید.
(توجه: به دلایل امنیتی، هنگام تایپ رمز عبور، هیچ کاراکتری، نه ستاره و نه نقطه، نمایش داده نمیشود. شما فقط رمز را تایپ کرده و Enter را بزنید).
پس از تأیید رمز، فرایند آپلود آغاز شده و درصد پیشرفت آن نمایش داده میشود.
نکته (انتقال پوشه): اگر بهجای فایل، قصد انتقال یک پوشه (Directory) کامل را دارید، باید از آپشن -r (به معنای Recursive) قبل از نام پوشه استفاده کنید. (مانند: scp -r MyFolder ubuntu@…)
دانلود فایل (انتقال از سرور به کامپیوتر)
در این سناریو، میخواهیم فایلی را از سرور راه دور، به کامپیوتر محلی خود دانلود کنیم. برای دانلود، کافیست جای مبدأ و مقصد را در دستور عوض کنیم:
scp [نام کاربری]@[IP سرور]:[مسیر فایل روی سرور] [مسیر مقصد روی کامپیوتر]
مثال عملی:
فرض کنید میخواهیم همان فایل blog-list.xlsx را که در مرحلهی قبل آپلود کردیم، از سرور دانلود کرده و در همان پوشهی دسکتاپ (جایی که ترمینال را باز کردهایم) ذخیره کنیم.
دستور به این شکل خواهد بود:
scp ubuntu@87.236.166.113:/home/ubuntu/blog-list.xlsx .
تحلیل دستور:
- ubuntu@…:/home/ubuntu/blog-list.xlsx: آدرس کامل فایل مبدأ روی سرور.
- . (نقطه): این نقطه در انتهای دستور بسیار مهم است. نقطه در خط فرمان به معنای «همین پوشهی فعلی» (Current Directory) است؛ یعنی فایل را دقیقاً در همینجایی که هستیم (دسکتاپ) دانلود کن.
مانند قبل، پساز وارد کردن رمز عبور سرور، فرایند دانلود آغاز خواهد شد.