بلاگ
دسامبر 05
آموزش کامند CP در لینوکس

معرفی کامند cp در لینوکس

آموزش کامند cp در لینوکس به همراه مثال

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

نحوه نوشتن دستور cp :

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

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

فرض کنید یک دایرکتوری با نام geeksforgeeks شامل  یک فایل متنی وجود دارد

    مثلا:

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

فرض کنید یک دایرکتوری به نام geeksforgeeks وجود دارد که یک فایل متنی a.txt، b.txt و یک نام دایرکتوری جدید دارد که ما میخواهیم در آن همه فایل ها را کپی می کنیم.

مثلا:

توجه: در این نمونه نام دایرکتوری باید مربوط به آخرین آرگومان باشد. وجود Dest_directory الزامی است تا دستور بالا انجام شود زیرا دستور cp، Dest_directory را ایجاد نمی کند.

  1. دو نام دایرکتوری: اگر دستور شامل دو نام دایرکتوری باشد، cp همه فایل های دایرکتوری مبدا را در دایرکتوری مقصد کپی می کند و هر فایل یا دایرکتوری مورد نیاز را ایجاد می کند. در این حالت برای نشان دادن کپی برگشتی دایرکتوری ها، به یک گزینه اضافی، معمولاً R، نیاز است.

در دستور بالا، رفتار cp به وجود یا عدم وجود Dest_directory بستگی دارد. اگر Dest_directory وجود نداشته باشد، cp آن را ایجاد می کند و محتوای Src_directory را به صورت بازگشتی همانطور که هست کپی می کند. اما اگر Dest_directory وجود داشته باشد، کپی از Src_directory زیر فهرست Dest_directory می شود.

گزینه ها

گزینه های زیادی برای دستور cp وجود دارد، در آموزش کامند cp در لینوکس برخی از گزینه های مفید را شرح خواهیم داد: فرض کنید دایرکتوری به نام geeksforgeeks حاوی دو فایل با محتوایی به نام های a.txt و b.txt است. این سناریو برای درک گزینه های زیر مفید است.

  1. i :- i (interactive) مخفف Interactive copying است. با این گزینه سیستم در ابتدا، قبل از بازنویسی فایل مقصد، به کاربر هشدار می دهد. cp یک پاسخ را درخواست می کند، اگر y را فشار دهید، فایل را بازنویسی می کند و با هر گزینه دیگری آن را بدون کپی رها می کند.
  2. -b (backup): با این گزینه دستور cp از فایل مقصد در همان پوشه با نام های مختلف و با فرمت های مختلف بک آپ می گیرد.
  3. –f (force): در صورتی که سیستم نتواند برای عملیات نوشتن فایل مقصد را باز کند، به این دلیل که کاربر مجوز نوشتن این فایل را ندارد، با استفاده از گزینه f- از دستور cp، ابتدا فایل مقصد حذف و سپس محتوا از منبع تا فایل مقصد کپی می شود.

 

  1. -r یا -R: کپی کردن ساختار دایرکتوری. با این گزینه دستور cp رفتار بازگشتی خود را با کپی کردن کل ساختار دایرکتوری به صورت بازگشتی نشان می دهد. فرض کنید میخواهیم دایرکتوری geeksforgeeks که حاوی تعداد زیادی فایل می شود را کپی کنیم، دایرکتوری ها در دایرکتوری gfg (موجود نیست).
  2. -p(preserve): با گزینه p-، cp ویژگی‌های : زمان آخرین تغییر داده‌ها و زمان آخرین دسترسی، مالکیت (فقط در صورتی که مجوز انجام این کار را داشته باشد. این)، و مجوزهای فایل را از هر فایل منبع در فایل مقصد مربوطه حفظ می‌کند. توجه: برای حفظ ویژگی ها باید کاربر اصلی سیستم باشید، در غیر این صورت مشخصات تغییر می کند.

همانطور که در بالا می بینیم هر دو a.txt و c.txt (ایجاد شده با کپی کردن) ویژگی های یکسانی دارند.

مثلا:

کپی کردن با استفاده از  *wildcard: علامت ستاره نشان دهنده هر چیزی است، یعنی همه فایل ها و دایرکتوری ها. فرض کنید اسناد متنی زیادی در یک دایرکتوری داریم و می‌خواهیم آن را در دایرکتوری دیگری کپی کنیم، اگر فایل‌ها را 1 به 1 کپی کنیم زمان زیادی طول می‌کشد یا اگر نام همه این فایل‌ها را به‌عنوان آرگومان مشخص کنیم، دستور خیلی طولانی می‌شود، اما با استفاده از*wildcard  ساده می شود.

 

 

 

 

دیدگاه نوشتن

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *