خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
نحوه استفاده از دستور cp در لینوکس
هنگام کار بر روی سیستم های لینوکس و یونیکس، کپی کردن فایل ها و دایرکتوری ها یکی از رایج ترین کارهایی است که روزانه انجام می دهید.
cp یک ابزار خط فرمان برای کپی کردن فایل ها و دایرکتوری ها در سیستم های یونیکس و لینوکس است. در این مقاله نحوه استفاده از دستور cp را توضیح خواهیم داد.
SOURCE می تواند شامل یک یا چند فایل یا دایرکتوری به عنوان پارامتر باشد و پارامتر DESTINATION می تواند یک فایل یا دایرکتوری واحد باشد.
وقتی پارامترهای SOURCE و DESTINATION هر دو فایل هستند(یعنی هردوی آنها فایل باشند)، دستور cp فایل اول را در فایل دوم کپی می کند و اگر فایل وجود نداشته باشد، دستور آن را ایجاد می کند.
وقتی SOURCE چندین فایل یا دایرکتوری به عنوان پارامتر دارد، پارامتر DESTINATION باید یک دایرکتوری باشد. در این حالت فایل ها و دایرکتوری های SOURCE به دایرکتوری DESTINATION منتقل می شوند.
هنگامی که پارامتر های SOURCE و DESTINATION هر دو دایرکتوری هستند، دستور cp اولین دایرکتوری را در فولدر دوم کپی می کند.
برای کپی کردن فایل ها و دایرکتوری ها، باید حداقل مجوز read در فایل سورس و مجوز write در دایرکتوری مقصد را داشته باشید که اگر چنین نباشد خطای permission denied را دریافت خواهید کرد.
یا
برای کپی کردن یک فایل در دایرکتوری دیگر، مسیر مطلق یا نسبی را به دایرکتوری مقصد مشخص کنید. وقتی فقط نام دایرکتوری به عنوان مقصد مشخص می شود، فایل کپی شده همان نام فایل اصلی را دارد.
در مثال زیر، فایل file.txt را در فولدر /backup کپی می کنیم:
اگر می خواهید فایل را با نام دیگری کپی کنید، باید نام فایل مورد نظر را مشخص کنید. دستور زیر فایل را در دایرکتوری مشخص شده با نام new_file.txt کپی می کند.
به طور پیش فرض، اگر فایل مقصد وجود داشته باشد، overwrite می شود و وجود n- با دستور cp اجازه overwrite کردن را نمی دهد. برای وادار کردن cp به درخواست تایید، از گزینه i- استفاده کنید.
اگر می خواهید فایل را فقط در صورتی کپی کنید که فایل موجود در سورس جدیدتر و آپدیت شده از فایل مقصد باشد(یعنی فایل هم در منبع و هم در مقصد وجود داشته باشد)، دستور را با گزینه u- فراخوانی کنید:
هنگام کپی کردن یک فایل، فایل جدید متعلق به کاربری است که دستور را اجرا می کند. از گزینه p- برای حفظ حالت فایل، ownership و timestamps یا مهرهای زمانی استفاده کنید:
با استفاده از سوئیچ -v هر کپی که انجام می شود در خروجی خط فرمان گزارشی از آن نشان داده می شود:
خروجی:
دستور بالا دایرکتوری مقصد را ایجاد می کند و به صورت بازگشتی همه فایل ها و ساب دایرکتوری را از مبدا به دایرکتوری مقصد کپی می کند. اگر دایرکتوری مقصد از قبل وجود داشته باشد، خود دایرکتوری سورس و محتوای آن در داخل دایرکتوری مقصد کپی می شود. برای کپی کردن فقط فایل ها و ساب دایرکتوری ها و نه دایرکتوری سورس، از گزینه T- استفاده کنید:
راه دیگر برای کپی کردن فقط محتوای دایرکتوری و نه خود دایرکتوری، استفاده از کاراکتر (*) است. ایراد دستور زیر این است که فایل ها و دایرکتوری های مخفی (آنهایی که با نقطه شروع می شوند.) را کپی نمی کند.
تمام گزینه هایی که در قسمت قبل هنگام کپی کردن فایل ها استفاده کردیم می توانند هنگام کپی کردن دایرکتوری ها نیز استفاده شوند. تفاوت اصلی این است که هنگام کپی کردن دایرکتوری ها، همیشه باید از گزینه R- استفاده کنید.
cp یک ابزار خط فرمان برای کپی کردن فایل ها و دایرکتوری ها در سیستم های یونیکس و لینوکس است. در این مقاله نحوه استفاده از دستور cp را توضیح خواهیم داد.
How to Use cp command
Syntax کلی استفاده از دستور cp بصورت زیر است:cp [OPTIONS] SOURCE... DESTINATION
SOURCE می تواند شامل یک یا چند فایل یا دایرکتوری به عنوان پارامتر باشد و پارامتر DESTINATION می تواند یک فایل یا دایرکتوری واحد باشد.
وقتی پارامترهای SOURCE و DESTINATION هر دو فایل هستند(یعنی هردوی آنها فایل باشند)، دستور cp فایل اول را در فایل دوم کپی می کند و اگر فایل وجود نداشته باشد، دستور آن را ایجاد می کند.
وقتی SOURCE چندین فایل یا دایرکتوری به عنوان پارامتر دارد، پارامتر DESTINATION باید یک دایرکتوری باشد. در این حالت فایل ها و دایرکتوری های SOURCE به دایرکتوری DESTINATION منتقل می شوند.
هنگامی که پارامتر های SOURCE و DESTINATION هر دو دایرکتوری هستند، دستور cp اولین دایرکتوری را در فولدر دوم کپی می کند.
برای کپی کردن فایل ها و دایرکتوری ها، باید حداقل مجوز read در فایل سورس و مجوز write در دایرکتوری مقصد را داشته باشید که اگر چنین نباشد خطای permission denied را دریافت خواهید کرد.
Copying Files with cp Command
ابتدایی ترین سناریو استفاده از cp کپی کردن یک فایل در دایرکتوری فعلی است. به عنوان مثال، برای کپی کردن فایلی به نام file.txt در file_backup.txt، دستور زیر را اجرا کنید:cp file file_backup
یا
cp file{,_backup}
برای کپی کردن یک فایل در دایرکتوری دیگر، مسیر مطلق یا نسبی را به دایرکتوری مقصد مشخص کنید. وقتی فقط نام دایرکتوری به عنوان مقصد مشخص می شود، فایل کپی شده همان نام فایل اصلی را دارد.
در مثال زیر، فایل file.txt را در فولدر /backup کپی می کنیم:
sudo cp file.txt /backup
اگر می خواهید فایل را با نام دیگری کپی کنید، باید نام فایل مورد نظر را مشخص کنید. دستور زیر فایل را در دایرکتوری مشخص شده با نام new_file.txt کپی می کند.
sudo cp file.txt /backup/new_file.txt
به طور پیش فرض، اگر فایل مقصد وجود داشته باشد، overwrite می شود و وجود n- با دستور cp اجازه overwrite کردن را نمی دهد. برای وادار کردن cp به درخواست تایید، از گزینه i- استفاده کنید.
cp -i file.txt file_backup.txt
اگر می خواهید فایل را فقط در صورتی کپی کنید که فایل موجود در سورس جدیدتر و آپدیت شده از فایل مقصد باشد(یعنی فایل هم در منبع و هم در مقصد وجود داشته باشد)، دستور را با گزینه u- فراخوانی کنید:
cp -u file.txt file_backup.txt
هنگام کپی کردن یک فایل، فایل جدید متعلق به کاربری است که دستور را اجرا می کند. از گزینه p- برای حفظ حالت فایل، ownership و timestamps یا مهرهای زمانی استفاده کنید:
cp -p file.txt file_backup.txt
با استفاده از سوئیچ -v هر کپی که انجام می شود در خروجی خط فرمان گزارشی از آن نشان داده می شود:
cp -v file.txt file_backup.txt
خروجی:
'file.txt' -> 'file_backup.txt'
کپی کردن دایرکتوری با دستور cp در لینوکس
برای کپی کردن یک دایرکتوری، شامل تمام فایل ها و ساب دایرکتوری ها، از گزینه R- یا r- استفاده کنید. در مثال زیر، ما دایرکتوری Pictures را در Pictures_backup کپی می کنیم:cp -R Pictures Pictures_backup
دستور بالا دایرکتوری مقصد را ایجاد می کند و به صورت بازگشتی همه فایل ها و ساب دایرکتوری را از مبدا به دایرکتوری مقصد کپی می کند. اگر دایرکتوری مقصد از قبل وجود داشته باشد، خود دایرکتوری سورس و محتوای آن در داخل دایرکتوری مقصد کپی می شود. برای کپی کردن فقط فایل ها و ساب دایرکتوری ها و نه دایرکتوری سورس، از گزینه T- استفاده کنید:
cp -RT Pictures Pictures_backup
راه دیگر برای کپی کردن فقط محتوای دایرکتوری و نه خود دایرکتوری، استفاده از کاراکتر (*) است. ایراد دستور زیر این است که فایل ها و دایرکتوری های مخفی (آنهایی که با نقطه شروع می شوند.) را کپی نمی کند.
cp -RT Pictures/* Pictures_backup/
تمام گزینه هایی که در قسمت قبل هنگام کپی کردن فایل ها استفاده کردیم می توانند هنگام کپی کردن دایرکتوری ها نیز استفاده شوند. تفاوت اصلی این است که هنگام کپی کردن دایرکتوری ها، همیشه باید از گزینه R- استفاده کنید.
نمایش دیدگاه ها (1 دیدگاه)
دیدگاه خود را ثبت کنید: