دستورات انتقال فایل‌ها در لینوکس

دستورات انتقال فایل‌ها در لینوکس

در دسته بندی دستورات لینوکس، دستورات انتقال فایل‌ها در لینوکس هر یک بسته به نیازهای مختلف (انتقال محلی، انتقال بین سرور‌ها و سیستم‌های از راه دور) کاربرد دارند. در ادامه لیستی از این دستورات همراه با توضیحات، موارد استفاده، سوئیچ‌ها و مثال‌های کاربردی آمده است.

لیست دستورات انتقال فایل‌ها در لینوکس

دستور cp (Copy)

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

سینتکس:

cp [options] source destination

سوئیچ‌های مهم:

-r یا –recursive: کپی دایرکتوری‌ها به صورت بازگشتی.
-v یا –verbose: نمایش جزئیات کپی.
-i یا –interactive: تایید قبل از بازنویسی فایل‌های موجود.
-p: حفظ مجوز‌ها و تاریخ ایجاد فایل.
مثال‌ها:
کپی یک فایل:

cp file1.txt /home/user/

کپی یک دایرکتوری به همراه محتوای آن:

cp -r /home/user/docs /backup/docs_backup

دستور mv (Move)

یکی دیگر از دستورات انتقال فایل‌ها در لینوکس دستور vm است. این دستور برای جابجایی یا تغییر نام فایل‌ها و دایرکتوری‌ها استفاده می‌شود. سینتکس:

mv [options] source destination

سوئیچ‌های مهم:
-i: تایید قبل از بازنویسی فایل‌های موجود.
-v: نمایش جزئیات جابجایی.
مثال‌ها:
جابجایی یک فایل:

mv file1.txt /home/user/

تغییر نام یک فایل:

mv oldname.txt newname.txt

دستور rsync (Remote Sync)

در بین دستورات انتقال فایل‌ها در لینوکس دستور Rsync برای همگام‌سازی و انتقال فایل‌ها بین سیستم‌های محلی و راه دور استفاده می‌شود. این ابزار برای انتقال فایل‌ها به صورت بازگشتی و با حفظ مجوزها مناسب است و از قابلیت انتقال افزایشی (incremental) پشتیبانی می‌کند. سینتکس:

rsync [options] source destination

سوئیچ‌های مهم:
-a یا –archive: حفظ مجوزها و ویژگی‌های فایل.
-v یا –verbose: نمایش جزئیات.
–progress: نمایش پیشرفت انتقال.
-z: فشرده‌سازی فایل‌ها هنگام انتقال.
–delete: حذف فایل‌های مبدأ که در مقصد وجود ندارند.
مثال‌ها:
همگام‌سازی دایرکتوری:

rsync -av /source/dir/ /destination/dir/

انتقال فایل‌ها به سرور راه دور:

rsync -avz /local/dir/ user@remote:/remote/dir/

دستور scp (Secure Copy)

یکی دیگر از دستورات انتقال فایل‌ها در لینوکس دستور SCP است که برای انتقال فایل‌ها به صورت ایمن از طریق SSH استفاده می‌شود. سینتکس:

scp [options] source user@remote:/path

سوئیچ‌های مهم:
-r: کپی به صورت بازگشتی برای دایرکتوری‌ها.
-P: مشخص کردن پورت SSH (در صورت تغییر پورت پیش‌فرض).
-C: فشرده‌سازی فایل‌ها هنگام انتقال.
مثال‌ها:
انتقال فایل به سرور راه دور:

scp file1.txt user@192.168.1.100:/home/user/

انتقال دایرکتوری به سرور:

scp -r /local/dir/ user@remote:/remote/dir/

دستور sftp (Secure File Transfer Protocol)

در بین دستورات انتقال فایل‌ها در لینوکس دستور SFTP پروتکلی مشابه FTP است که از طریق SSH اجرا می‌شود و برای انتقال فایل‌ها بین سیستم‌های محلی و راه دور استفاده می‌شود. سینتکس:

sftp user@remote

دستورات داخلی SFTP:
put: آپلود فایل از سیستم محلی به سرور.
get: دانلود فایل از سرور به سیستم محلی.
ls: مشاهده لیست فایل‌های سرور.
cd: تغییر دایرکتوری در سرور.
مثال‌ها:
اتصال به سرور:

sftp user@192.168.1.100

آپلود یک فایل:

put /local/file.txt

دانلود یک فایل:

get /remote/file.txt

دستور ftp (File Transfer Protocol)

ftp (File Transfer Protocol) یک پروتکل قدیمی برای انتقال فایل‌هاست که در بسیاری از سیستم‌های قدیمی‌تر استفاده می‌شود. استفاده از SFTP به دلیل امنیت بهتر بیشتر توصیه می‌شود. سینتکس:

ftp [hostname]

دستورات داخلی FTP:
put: آپلود فایل.
get: دانلود فایل.
ls: مشاهده لیست فایل‌ها.
cd: تغییر دایرکتوری در سرور.
مثال:
اتصال به سرور:

ftp 192.168.1.100

آپلود یک فایل:

put file.txt

دستورات curl و wget

این دو ابزار برای دانلود فایل‌ها از طریق HTTP/HTTPS/FTP به کار می‌روند.

curl: این دستور ابزاری انعطاف‌پذیر برای انتقال فایل از URL‌های مختلف است. سینتکس:

curl [options] URL

سوئیچ‌های مهم:
-O: ذخیره با نام فایل اصلی.
-L: دنبال‌کردن تغییر مسیرها (redirects).
-u: ورود با نام کاربری و رمز عبور.
مثال:
دانلود یک فایل:

curl -O https://example.com/file.txt

دستور wget

دستور wget ابزار ساده‌تری نسبت به curl است و به طور معمول برای دانلود فایل‌ها از وب استفاده می‌شود. سینتکس:

wget [options] URL

سوئیچ‌های مهم:
-c: ادامه دانلود ناتمام.
-O: ذخیره فایل با نام دلخواه.
مثال:
دانلود فایل:

wget https://example.com/file.txt

دستور dd (Data Duplicator)

ابزار dd برای کپی کردن و انتقال داده‌ها در سطح بلاک‌ها استفاده می‌شود. معمولاً برای تهیه بکاپ دیسک‌ها و پارتیشن‌ها استفاده می‌شود. سینتکس:

dd if=/source of=/destination [options]

سوئیچ‌های مهم:
if: مسیر ورودی (input file).
of: مسیر خروجی (output file).
bs: اندازه بلاک‌ها برای خواندن و نوشتن.
مثال‌ها:
ایجاد یک ایمیج از دیسک:

dd if=/dev/sda of=/backup/sda.img bs=1M

کپی کردن فایل به دیسک USB:

dd if=/path/to/file.img of=/dev/sdb bs=4M

تفاوت‌ها و موارد استفاده از دستورات انتقال فایل‌ها در لینوکس

cp و mv برای انتقال و کپی فایل‌ها در همان سیستم محلی مناسب‌اند.
rsync و scp برای انتقال فایل‌ها بین سیستم‌های راه دور، با استفاده از SSH امنیت بیشتری دارند.
ftp و sftp برای انتقال فایل‌ها در محیط‌های قدیمی‌تر و پروتکل‌های شبکه مناسب‌اند. SFTP از طریق SSH امنیت بیشتری دارد.
curl و wget برای دانلود فایل‌ها از طریق وب و پروتکل‌های HTTP/HTTPS مناسب‌اند.
dd برای کپی‌کردن داده‌ها به‌صورت سطح پایین و در حجم‌های بزرگ مانند دیسک‌ها کاربرد دارد.
این دستورات هر کدام در موقعیت‌های مختلفی بسته به نوع داده و مسیر انتقال (محلی یا راه دور) استفاده می‌شوند.