اگر به تازگی وارد محیط خط فرمان لینوکس شده‌اید، احتمالاً این سؤال برای شما پیش آمده‌است که چگونه می‌توان با استفاده از خط فرمان لینوکس، یک دایرکتوری و فایل‌های موجود در آن را در یک دایرکتوری دیگر کپی کرد؟

دستور cp نه‌تنها برای کپی کردن فایل‌ها در خط فرمان لینوکس استفاده می‌شود؛ بلکه با کمی تفاوت برای کپی کردن دایرکتوری نیز قابل استفاده است.

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

 

شاید بگویید دستور cp را قبلاً برای کپی کردن دایرکتوری امتحان کرده‌اید و با این خطا روبه‌رو شده‌اید:

cp: -r not specified; omitting directory 'test_dir' 

با ما همراه شوید تا چند مسئله را در مورد کپی کردن دایرکتوری در لینوکس برای شما شرح دهیم.

 

این مطلب نیز ممکن است برای شما مفید باشد: دستور Ls در لینوکس (لیست کردن فایل ها و دایرکتوری ها)

 

کپی کردن دایرکتوری در خط فرمان لینوکس

چنانچه بخواهید دستور cp را برای کپی کردن محتوای یک دایرکتوری به دایرکتوری دیگر بکار بگیرید؛ باید از گزینه بازگشتی r- استفاده کنید. خطای فوق نیز به همین مورد اشاره می‌نماید.

تنها کاری که شما باید انجام دهید، اینست که از دستور زیر استفاده کنید:

cp -r source_directory destination_directory

و اکنون اگر از دستور ls در دایرکتوری مقصد استفاده کنید، باید کل دایرکتوری منبع در داخل دایرکتوری مقصد قابل مشاهده باشد.

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

 

این مطلب نیز ممکن است برای شما مفید باشد: ایجاد دایرکتوری از طریق خط فرمان لینوکس

 

چند نکته در مورد کپی کردن دایرکتوری در لینوکس

در این بخش، به چند نکته برای کپی کردن پوشه‌ها اشاره شده‌است.

1. اگر دایرکتوری مقصد وجود نداشته باشد، آن دایرکتوری تا یک سطح ایجاد می‌شود (در بخش بعدی توضیح داده شده‌است). با این وجود، در آن لحظه محتوای دایرکتوری منبع و نه خود منبع دایرکتوری کپی خواهد شد.

به‌عنوان‌مثال، اگر دستور زیر را وارد کنید:

cp -r source_directory non_existing_directory

non_existing_directory با محتوای داخل source_directory ایجاد می‌شود، اما خود دایرکتوری source_directory داخل آن وجود نخواهد داشت. بلکه فقط فایل‌های source_directory کپی می‌شوند. این مانند این خواهد بود که از non_existing_directory دو نسخه وجود داشته باشد.

root@jeyserver:~$ ls
test_dir
root@jeyserver:~$ cp -r test_dir new_dir
root@jeyserver:~$ tree
 .
 ├── new_dir
 │   ├── c.xyz
 │   ├── myzip1.zip
 │   └── myzip2.zip
 └── test_dir
     ├── c.xyz
     ├── myzip1.zip
     └── myzip2.zip
 2 directories, 6 files

2. شما نمی‌توانید از دستور فوق برای ایجاد ساختار دایرکتوری تودرتو استفاده کنید.

به‌عنوان‌مثال، اگر سعی دارید از cp -r Source_dir dir1/dir2/dir3 استفاده کنید؛ اما dir2 و dir3 وجود نداشته باشند، دستور بالا ساختار دایرکتوری تودرتو را ایجاد نکرده و دستور اجرا نخواهد شد.

 

این مطلب نیز ممکن است برای شما مفید باشد: مخفی کردن فایل ها و پوشه ها در اوبونتو

 

3. اگر از گزینه a- به‌همراه گزینه r- استفاده کنید، این گزینه اطلاعات اصلی فایل مانند مجوزهای فایل، برچسب‌های زمان فایل و غیره را حفظ می‌کند و به‌جای ایجاد دوباره آن، دایرکتوری را در مکان جدید بایگانی می‌نماید.

 

 

منبع:

linuxhandbook