زمان مطالعه: 7 دقیقه

یکی از مهارت­‌های لازم و اساسی برای کاربران سیستم­ عامل­‌های لینوکس، مدیریت کردن فایل­‌ها و دایرکتوری­‌ها است. از آنجایی که لینوکس یک سیستم عامل قدرتمند با قابلیت­‌ها و امکانات بسیار است، افراد نیاز دارند تا با دستورات و ابزارهای مختلف آن آشنا شوند تا به بهترین شکل بتوانند از قابلیت­‌های آن استفاده کنند. یکی از پرکاربردترین عملیات در مدیریت فایل­‌ها، انتقال یا کپی کردن فایل­ و دایرکتوری‌ در لینوکس است. کاربران می‌­توانند با استفاده از این عملیات  سیستم خود را بهتر مدیریت کنند.( هاست لینوکس )

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

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

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

روش­‌های کپی کردن فایل و دایرکتوری در لینوکس

روش‌های مختلفی برای کپی کردن فایل و دایرکتوری در لینوکس وجود دارد. بعضی از این روش­‌ها شامل موارد زیر است:

  • دستور cpبرای کپی کردن فایل و دایرکتوری
  • دستور rsyncبرای همگام سازی و کپی کردن فایل‌ و دایرکتوری ها
  • دستور scpبرای کپی کردن از یک سرور به سرور دیگر
  • دستور mvبرای انتقال یا تغییر نام فایل‌ها و دایرکتوری‌ها (به عنوان کپی نیز عمل می‌کند)

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

1. دستور cp برای کپی کردن فایل و دایرکتوری در لینوکس

Cp یکی از دستورات پرکاربرد برای کپی کردن فایل و دایرکتوری در لینوکس است. با استفاده از این دستور می‌توان یک یا چند فایل را از یک دایرکتوری به دایرکتوری دیگر کپی کرد. در زیر نحوه استفاده از دستور cp را بررسی می‌کنیم.

  • کپی کردن یک فایل در مکان دیگر
				
					cp source_file.txt /path/to/destination/
				
			

در دستور بالا، source_file.txt نام فایلی است که می­‌خواهید کپی کنید و/path/to/destination/ مسیر مقصد است.

  • کپی کردن چند فایل در مکان دیگر
				
					cp file1.txt file2.txt /path/to/destination/
				
			

در این دستور، file1.txt و file2.txt به /path/to/destination/ که دایرکتوری مقصد است، کپی می‌شوند.

  • کپی کردن یک دایرکتوری در مکانی دیگر
				
					cp -r source_directory/ /path/to/destination/
				
			

از پارامتر r- یا R- برای کپی کردن دایرکتوری و محتویات آن استفاده می‌شود.

  • کپی کردن با نام جدید
				
					cp source_file.txt /path/to/destination/new_name.txt
				
			

در این حالت، فایل source_file.txt به نام جدید new_name.txt در /path/to/destination/ کپی می‌شود.

  • کپی کردن فایل در چندین دایرکتوری

برای کپی کردن یک فایل در دو دایرکتوری باید توجه داشته باشید که اگر دایرکتوری‌های مقصد وجود نداشته باشند، دستور cp با خطا مواجه می‌شود. فرض کنید فایل example.txt را در سرور لینوکس داریم و می‌خواهیم آن را به دایرکتوری مختلف به نام‌های backup1 و backup2 کپی کنیم، پس از ایجاد کردن دایرکتوری ‌های مقصد می‌توانیم از دستور زیر برای کپی کردن استفاده کنیم:

				
					cp example.txt backup1/ backup2/
				
			

با استفاده از دستور بالا فایل example.txt در دو دایرکتوری backup1 و backup2 کپی خواهد شد.

فرض کنید می‌خواهید یک فایل خاص را به پنج دایرکتوری یا بیشتر کپی کنید. برای این کار می‌توانید از جوینرها (*) برای انتخاب چندین دایرکتوری با یک بار اجرای دستور cp استفاده کنید. این دستور به صورت زیر است:

				
					cp example.txt /path/to/destination*/
				
			

این دستور موجب کپی شدن فایل  example.txt به همه دایرکتوری‌هایی که با /path/to/backup*/ (مانند backup1، backup2، backup3 و...، backupN) شروع  می­‌شوند به عنوان مقصد انتخاب شوند و فایل در همه این دایرکتوری‌ها کپی شود.

پارامترهای دستور cp

Cp یکی از دستورات پرکاربرد در لینوکس برای کپی کردن فایل و دایرکتوری است. با استفاده از این دستور می­توان یک یا چند فایل را از یک دایرکتوری به دایرکتوری دیگر کپی کرد. در زیر نحوه استفاده از دستور cp را بررسی می­کنیم.

  • (recursive) r-این پارامتر فایل‌ها و دایرکتوری‌ها را با همه زیرمجموعه‌ها (بازگشتی) کپی می‌کند.
  • (interactive) i-در صورت وجود فایل با نام یکسان در دایرکتوری مقصد، این دایرکتوری از شما درخواست تایید می‌خواهد.
  • (update) u-این پارامتر، فقط فایل‌هایی که جدیدتر از فایل‌های مشابه خود در دایرکتوری مقصد هستند را کپی می‌کند.
  • (verbose) v-این پارامتر اقدامات و اطلاعات دستور cp را در وضعیت جاری نمایش می‌دهد.
روش های کپی کردن فایل و دایرکتوری
روش های کپی کردن فایل و دایرکتوری

روش های کپی کردن فایل و دایرکتوری در لینوکس

مطالب بیشتر اطلاعات بیشتر

کالی لینوکس چست؟ چرا در تست نفوذ اهمیت دارد؟

2. کپی کردن فایل و دایرکتوری در لینوکس با استفاده از دستور rsync

rsync یک ابزار قدرتمند برای همگام‌سازی سریع و کپی کردن فایل­ و دایرکتوری در لینوکس است، که برای مدیریت فایل‌ها و دایرکتوری استفاده می‌شود. rsync می‌تواند از راه دور یا به صورت محلی عمل کند. در زیر دستورات rsync برای کپی کردن فایل و دایرکتوری در لینوکس آورده شده است:

  • کپی کردن یک فایل در دایرکتوری دیگر
				
					rsync -r source_directory/ /path/to/destination/
				
			
  • کپی کردن یک دایرکتوری در دایرکتوری دیگر
				
					rsync source_file.txt /path/to/destination/
				
			

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

  • کپی کردن با حفظ ساختار دایرکتوری در مقصد
				
					rsync -av source_directory/ /path/to/destination/
				
			

از پارامتر a- برای حفظ ساختار ویژگی‌های فایل (شامل دسترسی‌ها، زمان‌های تغییر و ...) استفاده می‌شود. همچنین پارامتر v- جزئیات بیشتری در مورد عملیات rsync را نمایش می‌دهد.

  • کپی کردن در یک سرور از طریق SSH
				
					rsync -av -e ssh source_directory/ username@remote_host:/path/to/destination/
				
			

در این مثال، username نام کاربری شما و remote_host آدرس سرور از راه دور است. استفاده از –e ssh به rsync به معنای استفاده از پروتکل SSH برای اتصال است.

پارامترهای r- و u- و v- دقیقا مشابه پارامترهای دستور cp هستند. یک پارامتر دیگر برای دستور cp وجود دارد:

(archive) a- : این پارامتر مشابه r- عمل می­کند با این تفاوت که اطلاعات بیشتری را حفظ می­کند، از جمله سطوح دسترسی، زمان­‌های تغییر و ...

3. دستور scp

با استفاده از دستور scp (secure copy) در لینوکس، از طریق پروتکل SSH می­توانید اطلاعات را رمزگذاری کرده و فایل­ها و دایرکتوری­ها را از یک دایرکتوری به دایرکتوری دیگر به صورت امن انتقال ­دهید. این دستور زمانی مورد استفاده قرار می­گیرد که نیاز به انتقال فایل­ها بین دو سیستم (محلی یا از راه دور) با امنیت بالا دارید.

  • کپی کردن یک فایل به یک سرور از راه دور
				
					scp source_file.txt username@remote_host:/path/to/destination/
				
			
  • source_file.txtنام فایل مبدا
  • usernameنام کاربری در سرور مقصد
  • remote_hostآدرس سرور از راه دور
  • /path/to/destinationمسیر مقصد در سرور از راه دور
  • کپی کردن یک دایرکتوری به یک سرور از راه دور
				
					scp -r source_directory/ username@remote_host:/path/to/destination/
				
			

پارامتر r- یا R- برای کپی کردن دایرکتوری و محتویات آن به صورت بازگشتی استفاده می­شود.

  • کپی کردن فایل از سرور از راه دور به سیستم محلی
				
					scp username@remote_host:/path/to/source_file.txt /path/to/destination/
				
			

این دستور فایل مورد نظر را از سرور به سیستم محلی کپی می­کند.

  • کپی کردن دایرکتوری از سرور از راه دور به سیستم محلی
				
					scp -r username@remote_host:/path/to/source_directory/ /path/to/destination/
				
			

با اضافه کردن پارامتر r- یا R- می­توانید یک دایرکتوری و محتویات آن را از سرور به سیستم محلی کپی کنید.

پارامترهای دستور scp

  • (recursive) r- این پارامتر فایل‌ها و دایرکتوری‌ها را به بازگشتی از یک سرور به سیستم محلی یا برعکس کپی می‌کند.
  • (identity_file) i-این پارامتر به شما اجازه می‌دهد تا مسیر فایل کلید خصوصی (private key)، مرتبط با اتصال را مشخص کنید.
  • (preserve) p-این پارامتر وضعیت سطوح فایل‌ها (مانند تاریخ ایجاد و دسترسی) را حفظ می‌کند.
  • (verbose) v-این پارامتر اطلاعات بیشتری درباره اجرای دستور نشان می‌دهد.

4 . دستور mv

دستور mv در اصل برای انتقال () فایل­ها و دایرکتوری­ها به مکان جدید به همراه تغییر نام آن­هاست. این دستور برای انجام هر دو عملیات مورد استفاده قرار می­گیرد. هنگام استفاده از این دستور فایل یا دایرکتوری از مکان اصلی حذف می­شود و به مکان جدید منتقل می­شود.

در زیر نحوه استفاده از این دستور نشان داده شده است:

  • انتقال یک فایل به مکان جدید
				
					mv source_file.txt /path/to/destination/
				
			

 فایل مبدا source_file.txt و /path/to/destination مسیر مقصد است.

  • انتقال یک دایرکتوری به مکان جدید
				
					mv source_directory/ /path/to/destination/
				
			

source_directory همان دایرکتوری مبدا است.

  • تغییر نام فایل
				
					mv old_name.txt new_name.txt
				
			

old_name.txt نام فعلی فایل و new_name.txt نام جدید فایل است.

  • انتقال و تغییر نام یک دایرکتوری
				
					mv old_directory/ new_directory/
				
			

old_directory نام فعلی دایرکتوری و new_directory نام جدید دایرکتوری است.

  • انتقال یک فایل به مکان جدید با تغییر نام
				
					mv source_file.txt /path/to/destination/new_name.txt
				
			

source_file.txt فایل مبدا و /path/to/destination/new_name.txt مسیر مقصد و نام جدید است.

توجه داشته باشید که اگر مسیر مقصد اشتباه باشد یا اگر فایل یا دایرکتوری با نام مقصد از قبل وجود داشته باشد، دستور mv ممکن است بدون هشدار یا تایید، انتقال را انجام دهد. بنابراین در وارد کردن مسیر مقصد و تغییر نام، دقت کنید.

پارامترهای دستور mv

پارامترهای u- و i- و v- مانند پارامترهای دستور cp هستند. پارامتر دیگری که با دستور mv استفاده می‌­شود:

  • (backup) b- این پارامتر یک نسخه پشتیبان از فایل مقصد قبل از انتقال، می‌گیرد. نسخه پشتیبان با پسوند ‘~’ اضافه می‌شود.

نکات عمومی

  • هشدارها و پیام‌های خطابه پیام های خروجی هنگام کپی کردن فایل و دایرکتوری توجه کنید، تا مطمئن شوید که عملیات کپی کردن با موفقیت انجام شده است.
  • بررسی مجوزهامطمئن شوید که دسترسی لازم به فایل ها و دایرکتوری ها را دارید. در صورت نیاز، می‌توانید دسترسی مجوزها را با دستور chmod تنظیم کنید.
  • استفاده از مسیرهای کاملاز مسیرهای کامل و دقیق برای مبدا و مقصد استفاده کنید تا از هر گونه خطا در مورد مسیرها جلوگیری شود.

استفاده از این نکات، به شما در انجام عملیات کپی کردن فایل ها و دایرکتوری­ ها به صورت صحیح و بدون مشکل، کمک می­ کند.

جمع بندی

در این آموزش، دستورات cp، rsync، scp و mv برای کپی کردن فایل­ها و دایرکتوری­ ها در سیستم­ های لینوکس به شما معرفی کردیم. همچنین، نکات مهمی که باید در نظر بگیرید، استفاده از پارامترها و مسیرهای کامل، مدیریت مجوزها، بررسی هشدارها و پیام ­های خطاست.

با استفاده از این دستورات می‌­توانید به صورت صحیح و ایمن فایل­ ها و دایرکتوری­ ها در سیستم عامل لینوکس را کپی و همگام ­سازی کرده و حتی به صورت امن اطلاعات را به سرورهای راه دور انتقال دهید.

بدون دیدگاه

دیدگاهتان را بنویسید

هاستvpsسرور اختصاصی