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

Avatar
نویسنده: دریا آزادخواه
سه‌شنبه 7 خرداد 1398
مطالعه: ۹ دقیقه ۰ نظر ۲۵۲۷ بازدید

cp یکی از دستورهای خط فرمان برای کپی‌کردن فایل‌ها و دایرکتوری‌ها در لینوکس و توزیع‌های مختلف آن است. این کار در لینوکس با خط فرمان Shell انجام می‌شود و تنها باید دستورهای مدنظر خود را در آن محیط تایپ کنید. اگر شما هم به انتقال فایل‌ها و دایرکتوری‌ها در لینوکس نیاز دارید و می‌خواهید نحوه جابه‌جایی آن‌ها را در توزیع‌های مختلف Linux یاد بگیرید، این مقاله می‌تواند راهنمای مناسبی برایتان باشد.

در مطلب حاضر، نحوه اجرای دستور cp در خط فرمان را برای کپی‌کردن فایل‌ها و دایرکتوری‌ها آموزش و نحوه پشتیبان‌گیری سراسری فایل‌های سیستم و فیلترکردن و کپی‌کردن چند فایل را شرح می‌دهیم. در لینوکس چند دستور برای کپی فایل‌ها و دایرکتوری‌ها وجود دارد که در این مقاله از آموزش سیستم عامل با ذکر مثال‌هایی ساده و کاربردی، به آن‎‌ها اشاره می‌کنیم.

خرید سرویس‌های لینوکسی با انواع توزیع‌ها از پارس پک

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

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

دستور cp روش اصلی کپی فایل‌ها در سیستم‌عامل لینوکس است. تمامی توزیع‌های Linux می‌توانند از این دستور برای جابه‌جایی فایل‌ها یا دایرکتوری‌ها استفاده کنند. فرمت اصلی دستور سی‌پی بدین‌ترتیب است:

cp [additional_option] source_file target_file

برای مثال:

cp my_file.txt my_file2.txt

این دستور یک کپی از فایل my_file.txt ایجاد می‌کند و نام فایل جدید را به my_file2.txt تغییر می‌دهد.

معمولاً به‌طورپیش‌فرض دستور cp در همان دایرکتوری‌ای اجرا می‌شود که شما مشغول کار روی آن هستید. این یعنی اگر مسیرتان یکی از درایوهای سیستم‌عامل است، دستور نیز در همین محیط اجرا خواهد شد.

به‌منظور کپی‌کردن در مکان جاری، باید نام فایل مدنظر را تغییر دهید. برای این ‌کار، برخی از کاربران لینوکسی عبارت _old را به انتهای نام فایل اضافه و عده‌ای دیگر از عدد استفاده و بعضی حتی پسوند سه‌حرفی مشخص می‌کنند. به‌عنوان‌ مثال، .bak به‌جای txt. استفاده می‌شود. البته فرمت فایلی را که کپی کرده‌اید، باید به‌یاد داشته باشید تا بتوانید در مواقع ضروری آن را مجدداً به فرمت قبلی تغییر دهید و داده ذخیره‌شده در قالب فایل متنی را مشاهده کنید.

خرید سرور مجازی

ممکن است قبل از اینکه سیستم‌عامل لینوکس فایلتان را بازنویسی کند، اخطاری دریافت نکنید. مراقب باشید که در انتها باید پیغام «کپی با موفقیت انجام شد» را دریافت و در ترمینال، i- را مشاهده کنید. در این صورت، عملیات به‌درستی انجام شده است.

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

دستور انتقال فایل‌ها و پوشه‌ها را درسرور لینوکس چیست؟

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

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

 1. v  verbose

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

2. p  preserve

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

3. f  force

این دستور به‌اجبار و پیش از ساخت فایل جدید، فایل قبلی را حذف می‌کند که هیچ مشکلی در عملیات و کپی (ساخت فایل جدید) ایجاد نمی‌شود.

4. i  interactive

با این دستور درخواستی برای تأیید و انجام عملیات کپی فایل ایجاد می‌شود. پیشنهاد می‌کنیم که از آن حتماً استفاده کنید.

5. R recursive

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

6. u update

فقط در‌صورتی کپی انجام می‌شود که مقصد محل دیگری به‌‌جز مقصد اصلی فایل باشد.

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

لینوکس چیست؟

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

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

cp my_file.txt /new_directory

در این روش به تغییر نام فایل نیازی نخواهید داشت؛ مگر اینکه قبلاً مسیر جاری دایرکتوری با این پوشه و فایلی با نام فعلی ایجاد شده باشد. درواقع، تفاوت دایرکتوری‌ها باعث می‌شود که به تغییر نام نیازی نداشته باشید. درست مانند ویندوز که می‌توانید دو فایل هم‌نام را در دو درایوِ متفاوت ایجاد کنید. برای تعیین path یا مسیر برای فایل منبع، می‌توانید از دستور زیر نیز استفاده کنید:

cp /etc/my_file.txt /new_directory

این دستور امکان می‌دهد که به‌راحتی و بدون نیاز به تغییر نام، دایرکتوری‌ها را کپی کنید. همچنین، اگر دستور cp /new_directory وجود نداشته باشد، آن را ایجاد می‌کند. برای تغییر نام و کپی‌ فایل در مسیر دیگر، می‌توانید از دستور زیر استفاده کنید:

cp my_file.txt /new_directory/my_file2.txt

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

تغییر نام و کپی فایل در مسیر دیگر

این گزینه برای ایجاد بک‌آپ از فایل‌های پیکربندی یا برای کپی‌ فایل‌ها و داده‌ها از دستگاه به حافظه‌های قابل‌حمل و سیستم‌های ذخیره‌سازی بسیار مفید است. به‌ویژه اگر از لینوکس به‌عنوان سیستم‌عامل سرور استفاده می‌کنید، این قابلیت بارها به داد شما می‌رسد تا از بروز مشکل برای فایل‌ها جلوگیری و امنیت داده‌های خود را حفظ کنید.

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

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

cp my_file.txt my_file2.txt my_file3.txt /new_directory

این مثال که کد آن را در بالا خواندید، یک کپی از سه فایل در پوشه /new_directory ایجاد خواهد کرد. برای مشخص‌کردن تمام فایل‌هایی که رشته‌ای از کاراکترها را اشتراک‌گذاری می‌کنند، می‌توانید از علامت Wildcard یا کاراکترهای خاص استفاده کنید:

cp /pictures/*.jpg /new_directory

برای بررسی دقیق این موضوع، می‌توانید طبق مثال کد بالا یک عملیات کپی را انجام دهید. با اجرای این دستور در محیط ترمینال سیستم‌عامل لینوکس، تمام فایل‌های دارای پسوند .jpg در پوشه /pictures بررسی و در پوشه /new_directory کپی می‌شوند.

برای کپی‌کردن کل پوشه و زیرپوشه‌ها و فایل‌های آن، از دستور –R استفاده کنید:

cp –R /documents /new_directory

دستور cp در لینوکس

کپی کل پوشه، زیرپوشه و فایل‌هایشان

-R مخفف عبارت Recursive و به‌معنای «همه‌چیز در یک مکان» است. با این کار، تمامی داده‌ها اعم از فایل‌ها و دایرکتوری‌ها در پوشه جدید کپی خواهند شد. در این دستور، دایرکتوری جدید را با نام /new_directory مشخص کرده‌ایم.

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

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

rsync –a my_file.txt /new_directory/my_file_backup.txt
  • گزینه  –a به‌معنای انتخاب همه است. این گزینه ساب‌دایرکتوری‌ها و پیوندهای نمادین و سایر داده‌های بزرگ (متادیتا) را حفظ می‌کند.
  • فایل my_file.txt را پوشه کاری جایگزین می‌کند.
  • فایل /new_directory/ را در پوشه مقصد جایگزین می‌کند.
  • با استفاده از my_file_backup.txt فایلی که در حال کپی‌کردن هستید، نامش تغییر می‌کند.

برای کپی‌کردن دایرکتوری با استفاده از دستور rsync در ترمینال لینوکس، کافی است که مقادیر زیر را وارد کنید:

rsync –a /etc/docker/ /home/backup/docker/

با استفاده از این دستور، فایل‌های دایرکتوری /etc/docker/ در مسیر /home/backup/docker/ کپی می‌شوند. در استفاده از اسلش در این دستورها دقت کنید؛ زیرا برای مدیریت زیرپوشه، وجود این اسلش‌ها ضروری است.

روش‌های جانبی دیگر برای انجام عملیات کپی در لینوکس

دستور ls دستوری مکمل برای دستور cp در لینوکس است. برای فهرست‌کردن محتویات دایرکتوری، این دستور را وارد کنید:

ls /directory

مثال بالا، تمام فایل‌های موجود در/directory را به شما نشان می‌دهد. درصورتی‌که می‌خواهید از کپی‌شدن فایل‌ها در مسیر انتخابی‌تان مطمئن شوید، این دستور می‌تواند کاربردی باشد.

برای تغییر دایرکتوری‌ها، از cd و نام دایرکتوری استفاده کنید. برای مثال:

cd /other_directory

در این صورت، خط فرمان دایرکتوری را تغییر می‌دهد تا بررسی شود آیا دایرکتوری بازنشانی و تعویض شده است یا خیر.

جمع‌بندی 

در این مقاله از آموزش لینوکس، دستور cp را در لینوکس بررسی کردیم. با استفاده از خط فرمان Linux، بدون مراجعه مستقیم به پوشه‌ها و فایل‌ها این امکان را خواهید داشت که داده‌ها را کپی، جای‌گذاری، انتقال و درنهایت پشتیبان‌گیری کنید. همان‌طور‌که اشاره کردیم، دستور cp یکی از روش‌های مهم کپی و انتقال فایل‌ها است. درمقابل، دستور rsync در لینوکس را نیز آموختیم که تفاوت‌های جزئی با cp دارد. مهم‌ترین ویژگی دستور‌های معرفی‌شده سادگی و سرعت بسیار زیاد اجرای آن‌هاست.

سؤالات متداول

۱. آیا دستور cp روی مکینتاش کاربردی است؟ 

بله، این دستور در محیط ترمینال هر دو سیستم‌عامل لینوکس و مکینتاش ‌اجراشدنی است.

۲. معادل دستور cp در ویندوز چیست؟ 

به‌جای دستور cp در ویندوز، از COPY استفاده می‌شود.

۳. تفاوت دستور cp و rsync چیست؟ 

دستور cp بری کپی ساده و دستور rsync برای کپی در دایرکتوری‌های بزرگ استفاده می‌شود.

۴. آیا امکان ایجاد بک‌آپ با دستور cp وجود دارد؟ 

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

با خدمات ابری پارس پک آشنا شوید

اولین ارائه‌دهنده خدمات رایانش ابری در ایران هستیم