📚 بخش ۱۴ – کار با cp، mv، rm در لینوکس

مقدمه
بعد از یادگیری ساخت و دیدن فایلها با touch, cat, more, less، گام بعدی توانایی مدیریت مکان و وضعیت فایلها است:
- کپی (
cp) → ایجاد یک نسخه جدید از فایل یا پوشه در جای دیگر - جابجایی (
mv) → تغییر مکان یا تغییر نام فایل/پوشه - حذف (
rm) → پاککردن فایل یا پوشه (بدون بازگشت)
این سه ابزار، ستون اصلی مدیریت فایل در ترمینالاند و تقریبا در تمام فعالیتهای کاربری و مدیریت سرور استفاده میشوند.
📂 فصل ۱: دستور cp – کپی کردن فایلها و پوشهها
۱.۱ دستور پایه cp
ساختار کلی:
cp [گزینهها] مبدا مقصد
مثال ساده:
cp file.txt backup.txt
نتیجه: backup.txt یک کپی از محتوای file.txt است.
۱.2 کپی در پوشه دیگر
cp myfile.txt /home/user/backup/
۱.3 گزینههای پرکاربرد
| گزینه | توضیح |
|---|---|
-i | قبل از جایگزینی فایل سؤال میپرسد |
-u | فقط فایلهای جدیدتر را کپی میکند |
-v | نمایش عملیات کپی |
-r یا -R | کپی پوشهها (Recursive) |
-p | حفظ مجوزها و تایماستمپ |
مثال ترکیبی:
cp -rvp Documents /mnt/usb/
۱.۴ کپی چند فایل همزمان
cp file1.txt file2.txt /tmp/
📂 فصل ۲: دستور mv – جابجایی یا تغییر نام
۲.۱ ساختار کلی
mv [گزینهها] مبدا مقصد
۲.۲ جابجایی به پوشه دیگر
mv myfile.txt /home/user/oldfiles/
۲.۳ تغییر نام فایل
mv oldname.txt newname.txt
۲.۴ جابجایی چند فایل
mv file1.txt file2.txt /tmp/
۲.۵ گزینههای پرکاربرد
| گزینه | توضیح |
|---|---|
-i | قبل از بازنویسی سؤال میپرسد |
-u | فقط فایلهای جدیدتر را جابهجا میکند |
-v | نمایش عملیات در حال اجرا |
مثال:
mv -iv report.txt /backup/
📂 فصل ۳: دستور rm – حذف فایلها و پوشهها
هشدار: rm به سطل آشغال نمیرود. حذفها با این دستور معمولاً غیرقابل بازگشتاند مگر با ابزارهای ریکاوری پیچیده.
۳.۱ حذف فایل
rm file.txt
۳.۲ حذف چند فایل
rm file1.txt file2.txt
۳.۳ گزینههای مهم
| گزینه | توضیح |
|---|---|
-i | قبل از حذف سؤال میپرسد |
-v | نمایش نام فایلهای حذف شده |
-r | حذف بازگشتی پوشهها |
-f | حذف بدون هشدار |
مثال حذف پوشه:
rm -r old_directory/
۳.۴ حذف اجباری (خطرناک)
sudo rm -rf /path/to/data
⚠ این دستور میتواند تمام سیستم را نابود کند؛ حتماً قبلش مسیر را چک کن.
📂 فصل ۴: نکات حرفهای و ترفندها
- برای جلوگیری از اشتباههای مرگبار، همیشه alias ایمنسازی تعریف کن:
alias rm='rm -i'
- استفاده از
cp -iیاmv -iبرای محافظت در برابر بازنویسی. - ترکیب با
findبرای حذف یا جابجایی گروهی:
find /tmp -name "*.log" -type f -delete
📂 فصل ۵: تمرینهای عملی
تمرین ۱ – کپی پوشه دادهها
cp -rvp /var/www/html /backup/
تمرین ۲ – تغییر نام فایلهای گزارش
mv report1.txt old_report1.txt
تمرین ۳ – حذف لاگهای موقتی
rm -v /tmp/*.log
تمرین ۴ – جابجایی و جایگزینی مشروط
mv -u new_config.conf /etc/myapp/config.conf
📂 فصل ۶: سناریوی واقعی – بکاپ و آرشیو روزانه
فرض کن باید هر روز نسخه پشتیبان از پوشه پروژه بگیری:
cp -rp /home/user/project /backup/project_$(date +%F)
بعد پوشه پروژه را از پوشه اصلی به بخش آرشیو جابجا کنی:
mv /home/user/project /home/user/archive/
و نهایتاً لاگهای قدیمیتر از ۷ روز را حذف کنی:
find /var/log -type f -mtime +7 -exec rm -v {} \;
جمعبندی
cp→ نسخه برداری از فایلها و پوشههاmv→ جابجایی یا تغییر نامrm→ حذف کامل- نکات ایمنی مثل استفاده از
-i، بررسی مسیر، و استفاده از alias میتواند از فاجعه جلوگیری کند.