دستور cp در لینوکس | کپی فایل و دایرکتوری
دستور cp برای کپی کردن فایلها از یک مکان به مکان دیگر در لینوکس استفاده میشود. این دستور همچنین میتواند دایرکتوریها (پوشهها) را کپی کند.
Table Of Content
در این مقاله، توضیح خواهیم داد که دستور cp چیست و به شما نشان خواهیم داد که چگونه فایلها و دایرکتوریها را در لینوکس با استفاده از ترمینال کپی و پیست کنید.
نحوه استفاده از دستور cp
استفاده از دستور cp برای کپی فایل ها و دایرکتوری ها ساده و گزینه های [options] مختلفی برای انجام اقدامات پیشرفته ارائه میدهد. در زیر شکل اولیه دستور برای کپی کردن فایلها آمده است:
cp [options] [source] [destination]
جهت کپی دایرکتوری مانند مثال زیر در قسمت گزینه ها [options] از -r استفاده نمایید
cp -r [options] [source] [destination]
اگر مبدا یک فایل باشد مسیر مقصد نیز میتواند به یک فایل اشاره کند. اگر مبدا یک دایرکتوری باشد، مسیر مقصد نیز میبایست به یک دایرکتوری اشاره کند.
نکته: اگر دایرکتوری مقصد وجود نداشته باشد، دستور cp نمیتواند آن را ایجاد کند و خطا میدهد. مطمئن شوید که ابتدا با دستور mkdir، دایرکتوری مقصد را ایجاد کردهاید.

گزینه های دستور cp
گزینه های دستور cp امکانات مختلفی از جمله پشتیبان گیری از فایل ها، حفظ تاریخ ایجاد و سطوح دسترسی در اختیار کاربران قرار میدهد که در زیر لیستی از گزینه ها به همراه توضیحات برای شما قرار داده ایم:
میتادیتا مبدا را نگه میدارد، مانند سطوح دسترسی و تاریخ ایجاد | -a |
از هر فایل مقصد موجود یک بک آپ تهیه میکند | -b |
اگر فایل یا دایرکتوری در مقصد از قبل وجود دارد آن را با مبدا جایگزین میکند | -f |
قبل از جایگزینی فایل یا دایرکتوری از شما تایید میگیرد | -i |
تمامی فایلها و زیرپوشههای دایرکتوری را کپی میکند | -r |
فایل یا دایرکتوری اگر قبل در مقصد وجود دارد آن را جایگزین نمیکند | -n |
فقط در صورتی که مقصد قدیمی تر از مبدا باشد کپی انجام میشود | -u |
اطلاعات مربوط به فرآیند کپی را در خروجی نمایش میدهد | -v |
راهنمای دستور را نمایش میدهد | –help |
نسخه دستور cp را نمایش میدهد | –version |
مثال های دستور cp
کپی کردن چندین فایل به یک دایرکتوری
کپی فایل های test1.txt , test2.txt , test3.txt به دایرکتوری test-dir
cp test1.txt test2.txt test3.txt test-dir

دستور cp به صورت پیشفرض خروجی نمایش نمیدهد. ما از دستور ls -l test-dir برای تایید اینکه فایل ها به پوشه test-dir منتقل شده اند استفاده کردیم.
کپی گروهی فایل ها با نام یکسان با استفاده از wildcard
وقتی که نام فایلها از یک الگو پیروی میکند، از نماد (*) به عنوان جایگزین میتوانید استفاده کنید. مثال زیر تمام فایلهایی را که با file- شروع میشوند، به test-dir کپی میکند.
cp file-* test-dir

نمایش اعلان تعاملی برای بازنویسی فایل
در این مثال فایل file-1.txt از قبل در پوشه test-dir وجود دارد و ما در دستور از گزینه -i برای تایید گرفتن قبل از بازنویسی فایل و از گزینه -v برای نمایش خروجی فرآیند کپی استفاده کردیم:
cp -i -v file-1.txt test-dir

ایجاد فایل بک آپ در هنگام کپی
در این مثال از گزینه -v برای نمایش خروجی فرآیند، از گزینه -b برای تهیه پشتیبان از فایل موجود در مقصد و از گزینه -S برای مشخص کردن پسوند فایل پشتیبان استفاده میکنیم:
cp -v -b -S .bak file-1.txt test-dir

همانطور که در تصویر بالا مشاهده میکنید فایل file-1.txt که از قبل وجود داشته یک بک آپ از آن با پسوند .back تهیه شده و سپس فایل بازنویسی شده است.