cp - تهیه رونوشت از فایل‌ها

دستور cp مخفف کلمه Copy به معنای رونوشت گرفتن از فایل‌ها می‌باشد (در ادامه، برای راحتی کار از اصطلاح کپی کردن استفاده می‌شود).

نمای کلی دستور cp به صورت زیر است:

$ cp [options] [source] [directory]

options: پارامترهای مورد نیاز دستور.

source: فایل(ها)یی که می‌خواهیم کپی کنیم.

directory: فولدری که می‌خواهیم فایل(ها) را در آن کپی کنیم.

توضیح پارامترها:

copy-contents--: وقتی به صورت بازگشتی استفاده شود، محتویات فایل‌های خاص (مثل لینک‌ها) را هم کپی می‌کند.

cp --copy-content ~/examples.desktop ~/Desktop

f-یا force--: اگر فایل‌هایی که قرار است کپی کنیم، در فولدر مقصد وجود داشته باشند، آن‌ها را پاک میکند و فایل‌ها را کپی می‌کند (در واقع آن‌ها را بازنویسی می‌کند).

cp -f myFile.txt ~/Documents/

i-یا interactive--: قبل از بازنویسی فایل‌ها، اجازه می‌گیرد (پارامتر n-قبلی را باطل می‌کند).

cp -i myFile.txt ~
cp: overwrite '/home/majid/myFile.txt'? y

l-یا link--: به جای کپی کردن فایل‌ها، از آن‌ها در فولدر مقصد لینک درست می‌کند (توضیح در ادامه).

cp --link myFile.txt ~/Downloads/

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

n-یا no-clobber--: اگر فایل‌هایی که می‌خواهیم کپی کنیم، قبلا وجود داشته باشند، آنها را بازنویسی نمی‌کند (پارامتر i-قبلی را باطل می‌کند).

cp -i -n myFile.txt ~/Desktop/

در مثال بالا، پارامتر n-تاثیر دارد و i-باطل شده و بی تاثیر است.

r-یا R-یا recursive--: اگر source، اسم یک فولدر باشد و از این پارامتر استفاده شود، فولدر را به همراه محتویات داخل آن کپی می‌کند.

cp -R myFolder ~/Video/

t-یا targer-directory=DIRECTORY--: همه فایل‌های source را در فولدر directory قرار می‌دهد.

cp -t ~/Desktop/NewFolder file1.txt file2.txt

در مثال بالا، فایل‌های file1.txt و file2.txt را در فولدر NewFolder واقع در دسکتاپ کپی می‌کند.

T-یا no-target-directory--: فرض می‌کند اسم directory یه نام فایل است. با استفاده از این پارامتر می‌توان در حین عملیات کپی، در فایل تغییر نام هم ایجاد کرد.

cp -T mySourceFile.txt ~/Desktop/Destination.txt

در مثال بالا، علاوه بر اینکه فایل mySourceFile.txt در دسکتاپ کپی می‌شود، نام فایل کپی شده هم تغییر می‌کند.

u-یا update--: تنها وقتی عملیات کپی را انجام می‌دهد که فایل‌هایی که قرار است کپی کنیم، از فایل‌های موجود در مقصد جدیدتر باشند (این برای فایل‌های همنام است. برای فایل‌هایی که قبلا در مقصد وجود نداشته اند، فرقی نمی‌کند).

cp -u myFile.txt ~/Desktop/

v-یا verbose--: کاری که انجام می‌دهد را اعلام می‌کند.

cp -v myFile.txt ~/Desktop/
'myFile.txt' -> '/home/majid/myFile.txt'