وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

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

0 13
زمان لازم برای مطالعه: 4 دقیقه


در این راهنما با کپی کردن فایل ها و دایرکتوری ها در لینوکس آشنا می شویم.

پیش نیازها:

برای انجام مراحلی که در این راهنما نشان داده شده است، به اجزای زیر نیاز دارید:

  • یک سیستم لینوکس که به درستی پیکربندی شده است. برای یادگیری و آزمایش، یک VM اوبونتو کافی است.
  • دسترسی خواندن به فایل‌ها/دایرکتوری‌هایی که باید کپی شوند. درباره مجوزهای فایل در لینوکس بیشتر بدانید.

کپی کردن فایل ها و دایرکتوری ها

کپی کردن یکی از اساسی ترین عملیاتی است که هنگام کار با کامپیوتر باید انجام دهید. در لینوکس، ابزارهای متعددی برای کپی کردن فایل‌ها و دایرکتوری‌ها وجود دارد:

  • cp: ابزار پیش فرض برای کپی فایل ها و دایرکتوری ها. در دسترس است روی همه توزیع های لینوکس
  • rsync: ابزاری قدرتمند که در درجه اول برای همگام سازی فایل ها استفاده می شود. با این حال، می توانیم از آن برای کپی کردن فایل ها و دایرکتوری ها نیز استفاده کنیم.

برای اهداف نمایشی، ما دو دایرکتوری را پیکربندی کردیم: /tmp/source و /tmp/مقصد.

$ درخت /tmp/منبع

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

$ درخت /tmp/مقصد

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

کپی کردن فایل ها و دایرکتوری ها با استفاده از Cp

ساختار دستور cp به شرح زیر است:

$ cp <گزینه ها> <منبع> <مقصد>

برای همه گزینه های موجود، مرد را بررسی کنید page:

$ مرد cp

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

کپی کردن یک فایل

دستور زیر “1.txt” را کپی می کند /tmp/source به /tmp/مقصد:

$ cp -v /tmp/منبع/1txt /tmp/مقصد

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

$ درخت /tmp/مقصد

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

اگر نام فایل دیگری را به عنوان مقصد مشخص کنید، cp آن را بر این اساس تغییر نام می دهد:

$ cp -v /tmp/منبع/1txt /tmp/مقصد/test.txt

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

$ درخت /tmp/مقصد

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

کپی کردن چندین فایل

دستور زیر تمام فایل های متنی زیر را کپی می کند /tmp/source به /tmp/مقصد:

$ cp -v /tmp/منبع/1txt /tmp/منبع/2txt /tmp/منبع/3txt /tmp/منبع/4txt /tmp/منبع/5txt /tmp/مقصد

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

$ درخت /tmp/مقصد

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

اگر فایل های منبع به صورت الگو نامگذاری شده باشند، cp می تواند با آن کار کند:

$ cp -v /tmp/منبع/*txt /tmp/مقصد

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

$ درخت /tmp/مقصد

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

کپی کردن دایرکتوری

در مثال بعدی، “subdir1” را در آن کپی می کنیم /tmp/مقصد:

$ cp -v -r /tmp/منبع/subdir1 /tmp/مقصد

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

$ درخت /tmp/مقصد

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

در اینجا، پرچم “-r” به دستور cp می گوید که دایرکتوری و تمام محتوای آن را به صورت بازگشتی در مقصد کپی کند.

پیشنهاد می‌کنیم بخوانید:  Bash Sleep Granularity میلی ثانیه

اگر نام دایرکتوری دیگری در مقصد مشخص شده باشد، cp نام آن را بر این اساس تغییر می‌دهد:

$ cp -v -r /tmp/منبع/subdir1 /tmp/مقصد/رنگ زرد

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

$ درخت /tmp/مقصد

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

اگر دایرکتوری مقصد از قبل وجود داشته باشد، cp دایرکتوری منبع و هر چیزی که در آن وجود دارد کپی می کند. با این حال، ما می توانیم تعیین کنیم که فقط فایل ها و زیر شاخه ها را کپی کنیم، نه دایرکتوری هدف:

$ cp -v -rT /tmp/منبع/subdir1 /tmp/مقصد/رنگ زرد

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

$ درخت /tmp/مقصد

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

کپی کردن فایل ها و دایرکتوری ها با استفاده از Rsync

استفاده اولیه از rsync همگام سازی فایل ها بین سرورهای محلی/راه دور است. با چندین ویژگی اضافی همراه است. با این حال، ما همچنین می‌توانیم از آن برای همگام‌سازی فایل‌ها از یک دایرکتوری به فهرست دیگر (کپی کردن به عبارت دیگر) استفاده کنیم.

ساختار دستور rsync به شرح زیر است:

$ rsync <گزینه> <منبع> <مقصد>

مرد را بررسی کنید page برای همه گزینه های موجود:

$ مرد rsync

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

کپی کردن فایل ها

دستور زیر “1.txt” را کپی می کند /tmp/source به /tmp/مقصد:

$ rsync /tmp/منبع/1txt /tmp/مقصد && درخت /tmp/مقصد

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

در اینجا، پارامتر “-a” به rsync می گوید که در حالت بایگانی کار کند.

همچنین می توانیم فایل را با نام دیگری در مقصد کپی کنیم:

$ rsync -v /tmp/منبع/1txt /tmp/مقصد/different.txt && درخت /tmp/مقصد

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

برای کپی کردن چندین فایل، فایل ها را یکی یکی مشخص کنید یا الگوی مطابقت را شرح دهید:

$ rsync -v /tmp/منبع/1txt /tmp/منبع/2txt /tmp/مقصد && درخت /tmp/مقصد

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

$ rsync -v /tmp/منبع/*txt /tmp/مقصد && درخت /tmp/مقصد

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

کپی کردن دایرکتوری ها

برخلاف cp، برای کپی کردن دایرکتوری ها با فایل ها و زیرشاخه های آن، هیچ تغییری در نحو با rsync وجود ندارد. هنگام کار در حالت بایگانی، rsync به طور خودکار همه محتویات را به صورت بازگشتی کپی می کند.

پیشنهاد می‌کنیم بخوانید:  چگونه می توان یک متغیر را در یک فایل با استفاده از sed جایگزین کرد؟

یک تفاوت اصلی در اینجا اسلش انتهایی است (/).

  • اگر یک اسلش در فهرست منبع وجود داشته باشد، rsync محتویات فهرست منبع را در مقصد کپی می کند.
  • اگر اسلش در دایرکتوری منبع وجود نداشته باشد، rsync دایرکتوری مبدا را در دایرکتوری مقصد کپی می کند.

دستورات زیر تفاوت را کاملاً نشان می دهند:

$ rsync -v /tmp/منبع /tmp/مقصد

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

$ درخت /tmp/مقصد

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

$ rsync -v /tmp/منبع/ /tmp/مقصد

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

$ درخت /tmp/مقصد

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

کپی کردن فایل ها در دستگاه از راه دور با استفاده از Scp

دستور scp یک ابزار تخصصی است که فایل ها و دایرکتوری ها را از طریق SSH کپی می کند. این نیاز به نصب سرور OpenSSH دارد روی کنترل host.

اصول دستور scp مانند دستور cp است. درباره دستور scp بیشتر بدانید.

کپی کردن فایل ها

در دستور زیر، ISO 22.04 اوبونتو را در کپی می کنیم /tmp فهرست راهنما روی یک کنترل از راه دور host:

$ scp اوبونتو-22.04-desktop-amd64.iso root@192.168.99.15:/tmp

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

برای کپی کردن یک فایل از راه دور host، از دستور زیر استفاده کنید:

$ scp ریشه@192.168.99.15:/tmp/اوبونتو-22.04دسکتاپ-amd64.iso.

کپی کردن دایرکتوری ها

برای کپی کردن یک دایرکتوری در یک کنترل از راه دور host، از دستور scp زیر استفاده می کنیم:

$ scp -r ریشه test_dir@192.168.99.15:/tmp

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

اینجا “پارامتر r” برای عملکرد در حالت بازگشتی است (برای کپی کردن دایرکتوری لازم است).

نتیجه

ما راه های مختلف کپی کردن فایل ها در لینوکس را به نمایش گذاشتیم. ما نشان دادیم که چگونه از دستورات cp و rsync برای کپی کردن فایل ها و دایرکتوری ها به صورت محلی استفاده کنیم. ما همچنین روش استفاده از دستور scp را برای کپی کردن فایل‌ها و دایرکتوری‌ها در یک کنترل از راه دور نشان دادیم host.

برای تنظیمات پیشرفته‌تر کپی و پشتیبان‌گیری، rsync گزینه بهتری است. می تواند یک نسخه پشتیبان از سیستم ایجاد کند، با چندین میزبان راه دور همگام شود، فایل های جدید را به روز کند و موارد دیگر.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-28 17:14:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید