# فصل چهارم: مدیریت فایل‌ها در لینوکس

## Linux File Management

فایل‌ها یکی از مهم‌ترین بخش‌های هر سیستم‌عامل هستند.

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

در فصل‌های گذشته با ساختار فایل سیستم لینوکس و نحوه حرکت میان مسیرها آشنا شدیم.

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

مدیریت فایل‌ها یکی از مهارت‌های پایه‌ای لینوکس است و تقریباً در تمام حوزه‌های مرتبط با لینوکس مانند مدیریت سرور، برنامه‌نویسی، امنیت سایبری و DevOps کاربرد دارد.

---

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

در لینوکس یک مفهوم مهم وجود دارد:

Everything is a file

یعنی تقریباً همه چیز در لینوکس به شکل فایل مدیریت می‌شود.

فایل فقط شامل متن، تصویر یا ویدیو نیست.

مواردی مانند:

- فایل‌های متنی
- برنامه‌ها
- تنظیمات سیستم
- اطلاعات دستگاه‌ها
- داده‌های پردازش‌ها

همگی در ساختار فایل سیستم لینوکس قرار می‌گیرند.

دایرکتوری یا Directory محلی برای سازمان‌دهی فایل‌ها است.

به زبان ساده:

File:
محلی برای نگهداری اطلاعات.

Directory:
محلی برای نگهداری فایل‌ها و پوشه‌های دیگر.

---

# مشاهده فایل‌ها با دستور ls

یکی از پرکاربردترین دستورات لینوکس:
```bash
ls
```
است.

این دستور محتویات مسیر فعلی را نمایش می‌دهد.

مثال:

    ls

نمونه خروجی:

    Documents
    Downloads
    Pictures
    Projects

---

# نمایش اطلاعات کامل فایل‌ها

برای مشاهده جزئیات بیشتر از گزینه:

    -l

استفاده می‌کنیم.

مثال:

    ls -l

این دستور اطلاعاتی مانند موارد زیر را نمایش می‌دهد:

- سطح دسترسی فایل
- مالک فایل
- گروه فایل
- حجم فایل
- زمان آخرین تغییر
- نام فایل

---

# نمایش فایل‌های مخفی

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

مثال:

    .bashrc
    .profile
    .gitconfig

برای مشاهده این فایل‌ها:

    ls -a

استفاده می‌شود.

برای نمایش کامل همراه با جزئیات:

    ls -la

---

# ایجاد پوشه با mkdir

برای ساخت پوشه جدید از دستور:

    mkdir

استفاده می‌کنیم.

mkdir مخفف:

Make Directory

است.

مثال:

    mkdir projects

یک پوشه با نام projects ایجاد می‌شود.

---

# ساخت چند پوشه همزمان

مثال:

    mkdir photos documents videos

سه پوشه ایجاد می‌کند.

---

# ساخت مسیرهای تو در تو

با گزینه:

    -p

می‌توان چند سطح پوشه را همزمان ایجاد کرد.

مثال:

    mkdir -p Projects/Python/Beginner

ساختار زیر ایجاد می‌شود:

    Projects
    └── Python
        └── Beginner

---

# ایجاد فایل با touch

برای ساخت فایل خالی از دستور:

    touch

استفاده می‌کنیم.

مثال:

    touch hello.txt

فایل hello.txt ایجاد می‌شود.

---

# بررسی نوع فایل با file

برای تشخیص نوع یک فایل:

    file filename

استفاده می‌شود.

مثال:

    file hello.txt

این دستور مشخص می‌کند فایل چه نوع داده‌ای دارد.

---

# کپی کردن فایل‌ها با cp

برای کپی کردن فایل:

    cp source destination

استفاده می‌کنیم.

مثال:

    cp file.txt backup.txt

یک نسخه کپی از فایل ایجاد می‌شود.

---

# کپی کردن پوشه‌ها

برای کپی کردن پوشه باید از گزینه:

    -r

استفاده کنیم.

مثال:

    cp -r Projects Backup

پوشهٔ `Projects` و تمام محتویات آن در مقصد کپی می‌شود؛ دادهٔ مبدأ حذف یا منتقل نمی‌شود. اگر `Backup` از قبل یک دایرکتوری موجود باشد، نتیجه داخل `Backup/Projects` قرار می‌گیرد؛ در غیر این صورت دایرکتوری جدید `Backup` ساخته می‌شود.

---

# انتقال و تغییر نام فایل‌ها با mv

دستور:

    mv

برای دو کار استفاده می‌شود:

- تغییر نام فایل
- انتقال فایل

---

## تغییر نام

مثال:

    mv old.txt new.txt

نام فایل تغییر می‌کند.

---

## انتقال فایل

مثال:

    mv file.txt Documents/

فایل به پوشه Documents منتقل می‌شود.

---

# حذف فایل‌ها با rm

برای حذف فایل:

    rm file.txt

استفاده می‌کنیم.

توجه:

دستور rm معمولاً فایل را به سطل زباله منتقل نمی‌کند و حذف مستقیم انجام می‌دهد.

---

# حذف پوشه‌ها

برای حذف پوشه خالی:

    rmdir folder

برای حذف پوشه همراه با محتویات:

    rm -r folder

استفاده می‌شود.

---

# مشاهده محتوای فایل‌ها

## دستور cat

برای نمایش کامل یک فایل:

    cat file.txt

استفاده می‌شود.

---

## دستور less

برای مشاهده فایل‌های طولانی:

    less file.txt

استفاده می‌شود.

برای خروج:

    q

را فشار دهید.

---

## دستور head

نمایش ابتدای فایل:

    head file.txt

---

## دستور tail

نمایش انتهای فایل:

    tail file.txt

این دستور برای بررسی فایل‌های Log بسیار کاربردی است.

---

# کاربرد واقعی مدیریت فایل‌ها

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

یک برنامه‌نویس فایل‌های پروژه خود را مدیریت می‌کند.

یک مدیر سیستم فایل‌های تنظیمات سرورها را تغییر می‌دهد.

یک متخصص امنیت فایل‌های Log را بررسی می‌کند.

تمام این عملیات‌ها با همین دستورات پایه انجام می‌شوند.

---

# تمرین‌های فصل چهارم

## تمرین اول

ساخت پوشه تمرینی:

    mkdir linux-practice

---

## تمرین دوم

ورود به پوشه:

    cd linux-practice

---

## تمرین سوم

ساخت چند فایل:

    touch file1.txt file2.txt file3.txt

---

## تمرین چهارم

نمایش فایل‌ها:

    ls -la

---

## تمرین پنجم

کپی فایل:

    cp file1.txt backup.txt

---

## تمرین ششم

تغییر نام فایل:

    mv file2.txt document.txt

---

## تمرین هفتم

حذف فایل:

    rm file3.txt

---

# جمع‌بندی فصل چهارم

در این فصل یاد گرفتیم:

- فایل و دایرکتوری در لینوکس چیست.
- چگونه فایل‌ها را مشاهده کنیم.
- چگونه فایل و پوشه ایجاد کنیم.
- چگونه فایل‌ها را کپی کنیم.
- چگونه فایل‌ها را منتقل یا تغییر نام دهیم.
- چگونه فایل‌ها را حذف کنیم.
- چگونه محتوای فایل‌ها را بررسی کنیم.

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

در فصل بعد با یکی از مهم‌ترین بخش‌های لینوکس آشنا می‌شویم:

مجوزها، مالکیت فایل‌ها و سیستم کاربران.
