یکی از مهارتهای لازم و اساسی برای کاربران سیستم عاملهای لینوکس، مدیریت کردن فایلها و دایرکتوریها است. از آنجایی که لینوکس یک سیستم عامل قدرتمند با قابلیتها و امکانات بسیار است، افراد نیاز دارند تا با دستورات و ابزارهای مختلف آن آشنا شوند تا به بهترین شکل بتوانند از قابلیتهای آن استفاده کنند. یکی از پرکاربردترین عملیات در مدیریت فایلها، انتقال یا کپی کردن فایل و دایرکتوری در لینوکس است. کاربران میتوانند با استفاده از این عملیات سیستم خود را بهتر مدیریت کنند.( هاست لینوکس )
در این آموزش، قصد داریم به صورت کامل به عملیات کپی کردن فایل و دایرکتوری در لینوکس بپردازیم، تا بتوانید با روشهای مختلف، مدیریت فایلها و دایرکتوریها را به بهترین نحو ممکن انجام دهید.
روشهای کپی کردن فایل و دایرکتوری در لینوکس
روشهای مختلفی برای کپی کردن فایل و دایرکتوری در لینوکس وجود دارد. بعضی از این روشها شامل موارد زیر است:
- دستور 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 برای کپی کردن فایلها و دایرکتوری ها در سیستم های لینوکس به شما معرفی کردیم. همچنین، نکات مهمی که باید در نظر بگیرید، استفاده از پارامترها و مسیرهای کامل، مدیریت مجوزها، بررسی هشدارها و پیام های خطاست.
با استفاده از این دستورات میتوانید به صورت صحیح و ایمن فایل ها و دایرکتوری ها در سیستم عامل لینوکس را کپی و همگام سازی کرده و حتی به صورت امن اطلاعات را به سرورهای راه دور انتقال دهید.
بدون دیدگاه