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


## 🔍 آموزش پیدا کردن فایل‌ها و پوشه‌ها در لینوکس
(**Find Files and Directories in Linux**)

گاهی وقتا دنبال یه فایل خاص می‌گردیم اما یادمون نیست کجا گذاشتیمش. لینوکس ابزارهای خوبی داره برای این کار مثل:

- `find` → دقیق، ولی کمی کندتر
- `locate` → سریع، ولی باید بانک اطلاعاتی به‌روز باشه

---

## 🟢 روش اول: استفاده از دستور `find`

### 🔸 پیدا کردن فایل بر اساس نام

```bash
find /path/to/search -name "filename.txt"
```

مثال:

```bash
find /home/user/ -name "todo.txt"
```

این دستور فایل `todo.txt` رو در مسیر `/home/user/` و زیرپوشه‌هاش جستجو می‌کنه.

---

### 🔸 جستجو بدون حساسیت به حروف بزرگ/کوچک

```bash
find /path -iname "filename.txt"
```

`-iname` یعنی اسم فایل رو بدون توجه به بزرگ یا کوچیک بودن حروف پیدا کن.

---

### 🔸 پیدا کردن دایرکتوری خاص

```bash
find /path -type d -name "myfolder"
```

`-type d` یعنی فقط دایرکتوری‌ها رو بررسی کن.

---

### 🔸 پیدا کردن فایل با پسوند خاص

```bash
find /path -name "*.jpg"
```

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

---

### 🔸 پیدا کردن فایل بزرگ‌تر از حجم مشخص

```bash
find / -type f -size +100M
```

فایل‌هایی که بیشتر از 100 مگابایت حجم دارن.

---

### 🔸 پیدا کردن فایل‌هایی که اخیراً تغییر کردن

```bash
find /path -type f -mtime -2
```

فایل‌هایی که در **۲ روز گذشته** ویرایش شدن.

---

## 🟡 روش دوم: استفاده از دستور `locate`

### 🔸 پیدا کردن سریع فایل با `locate`

```bash
locate filename.txt
```

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

🔁 **قبل از استفاده، بهتره دیتابیس رو آپدیت کنی:**

```bash
sudo updatedb
```

📌 اگر تازه فایل جدیدی ساختی، `locate` ممکنه هنوز پیداش نکنه، چون دیتابیس هنوز به‌روز نشده.

---

## 🔵 ترکیب با `grep` برای فیلتر بهتر

مثلاً دنبال فایل‌هایی هستی که توشون کلمه‌ی خاصی باشه:

```bash
find . -type f -name "*.txt" | xargs grep "hello"
```

یا با `locate`:

```bash
locate .conf | grep apache
```

---

## ⚪ پیدا کردن فایل با دسترسی خاص

```bash
find / -type f -perm 644
```

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

---

## 📌 خلاصه دستورات

| دستور | کاربرد |
|--------|--------|
| `find /path -name "file"` | پیدا کردن فایل با اسم مشخص |
| `find /path -type d -name "dir"` | پیدا کردن دایرکتوری |
| `find / -size +10M` | پیدا کردن فایل‌های بزرگ‌تر از 10MB |
| `locate file.txt` | جستجوی سریع فایل |
| `sudo updatedb` | آپدیت دیتابیس locate |
| `find . -name "*.log" | grep error` | جستجو با فیلتر محتوا |

---

## ✅ نتیجه‌گیری

دستور `find` خیلی انعطاف‌پذیره و می‌تونه دقیق‌ترین نتیجه رو بهت بده، ولی کمی کندتره. در مقابل، `locate` سرعت بالایی داره و برای کارهای روزمره عالیه. با یاد گرفتن این دستورات، دیگه هیچ فایلی توی سیستم گم نمی‌شه! 😄

 


آیا این پاسخ به شما کمک کرد؟

  • 0
« برگشت