در سیستم‌عاملهای شبه‌یونیکس و دیگر سیستم‌عامل‌ها، **`find`** ابزاری خط فرمانی برای جستجو بدنبال فایل‌ها در میان دایرکتوری‌های موجود در سیستم‌فایل است. این جستجو بر اساس معیارها و ضوابطی است که کاربر تعیین می‌کند. معیارهایی مانند الگوی نام فایل‌ها و تاریخ ویرایش یا دسترسی فایل‌ها. به صورت پیش‌فرض `find` لیستی از فایل‌های موجود در دایرکتوری کاری را بر می‌گرداند.
این دستور از طریق محیط shell اجرا شده و به شما کمک می‌کند فایل‌ها بر اساس دسته بندی‌های زیر جستجو نمایید.
بر اساس نوع، اعم از پوشه و یا فایل
بر اساس نام که می‌تواند حتی بخشی از نام فایل باشد
براساس زمان و تاریخ
براساس سطوح دسترسی
براساس سایز
براساس محتویات

برنامهٔ مرتبط دیگری به‌نام locate از `find` برای بروزرسانی پایگاه دادهٔ خود استفاده می‌کند.
دستور find با وجود کامل بودن دستوری زمان گیر است در مقابل دستور locate دستور سریعتری است.
که علت این سریع بودن در این است که بر اساس آپدیت‌های قبلی کار می‌کند و عیب آن نیز در همین است زیرا سیستم روزی
یکبار آپدیت می‌شود پس اگر به‌طور مثال فایلی را هم‌زمان ایجاد کردیم با این دستور نمی‌توانیم پیدا کنیم و باید ابتدا به صورت
دستی سیستم را آپدیت کنیم</nowiki></ref>

شکل استفاده
-----------

```
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

```

سه گزینهٔ اول مشخص می‌کند که `find` چطور باید با symbolic linkها رفتار کند. رفتار پیش‌فرض اینطور است که هیچ‌وقت symbolic linkها دنبال نشوند. همچنین می‌توان این حالت را صراحتاً توسط گزینهٔ P- مشخص نمود. گزینهٔ L- برای مواقعی استفاده می‌شود که قصد داشته باشیم symbolic linkها توسط `find` دنبال شوند.

حداقل یک مسیر باید تعریف شود. `find` می‌تواند نویسه‌های عام (به انگلیسی: Wildcard character) را نیز تفسیر کند.

عبارات (به انگلیسی: Expression) نیز باید توسط کارکتر فاصله از هم جدا شوند و از چپ به راست ارزیابی می‌شوند. همچنین می‌توانند شامل اعمال منطقی AND و OR باشند که می‌توان توسط آن‌ها عبارات پیچیده‌تری را پدیدآورد. (a- و o- بترتیب برای AND و OR کردن)
همچنین نسخهٔ گنوی `find` دارای تعداد بسیار زیادی ویژگی دیگر است که در پازیکس تعریف نشده‌اند.

نمونه‌ها
--------

### در دایرکتوری فعلی

```
find. -name 'my\*'

```

با این دستور find در دایرکتوری فعلی و شاخه‌های زیرین آن فایل یا دایرکتوریهایی را جستجو می‌کند که با *my* شروع می‌شوند. کارکترهای نقل‌قول (به انگلیسی: quote) برای این استفاده شده‌اند که تداخلی با مفسر خط فرمان رخ ندهد. بدون این کارکترها، مفسر خط فرمان عبارت *\*my* را با لیست فایل‌هایی که با my شروع می‌شوند و در دایرکتوری فعلی موجود هستند، جایگزین می‌کند.

### فقط فایل‌ها

```
find. -name "my\*" -type f

```

دستور بالا، نتایج جستجو را فقط محدود به فایل‌های واقعی می‌کند؛ بنابراین دایرکتوری‌ها، فایل‌های خاص، لوله‌ها (به انگلیسی: pipe)، لینک‌ها و غیره از قلم می‌افتند و find آن‌ها را نادیده می‌گیرد.

### فرمان‌ها

عمل پیش‌فرضی که find با نتایج جستجو انجام می‌دهد `print-` است، یعنی فقط نمایش آن‌ها در خروجی. (توجه داشته باشید که نسخه‌های جدید find هیچ عمل پیش‌فرضی انجام نمی‌دهند) ولی می‌توان هر فرمان دیگری را جایگزین عمل پیش‌فرض نمود.

```
find. -name "my\*" -type f -ls

```

دستور بالا با استفاده از ls اطلاعات بیشتری در مورد فایل‌های یافته شده نمایش می‌دهد.

### جستجو در تمام دایرکتوری‌ها

```
find / -type f -name "myfile" -print

```

این دستور تمام دایرکتوری‌های سیستم را بدنبال فایلی بنام *myfile* جستجو می‌کند و در صورت یافتن آن، در خروجی چاپ می‌کند. البته معمولاً این روش جستجو برای یک فایل ایدهٔ خوبی نیست. چون ممکن است برای مدت زمان قابل توجهی طول بکشد. پس بهتر است دایرکتوری مورد جستجو به صورت جزئی‌تر مشخص شود.

| * ن
* ب
* و
برنامه‌های واسط خط فرمان یونیکس و shell builtins |
| --- |
| سامانهٔ پرونده | 
* cat
* cd
* Chmod
* Chown
* Chgrp
* چک‌سام (دستور لینوکس)
* cmp
* CP
* dd
* du
* df
* file
* Fsck
* fuser
* ln
* Ls
* Mkdir
* Mount
* Mv
* pax
* Pwd
* rm
* Rmdir
* size
* split
* tee
* دستگاه حسی‌تنی
* type
* umask

 |
| فرایندها | 
* at
* bg
* Chroot
* cron
* fg
* Kill
* Killall
* nice
* pgrep
* Pkill
* ps
* Pstree
* time
* top

 |
| محیط کاربری | 
* clear
* Env
* exit
* finger
* history
* فهرست ابزارهای یونیکس
* logname
* mesg
* Passwd
* اس‌یو
* Sudo
* uptime
* talk
* tput
* Uname
* W (یونیکس)
* wall
* who
* Whoami
* write

 |
| پردازش متن | 
* awk
* banner
* basename
* comm
* csplit
* cut
* Diff
* Dirname
* ed
* ex
* fmt
* fold
* head
* iconv
* join
* less
* more
* nl
* paste
* Sed
* sort
* spell
* رشته‌ها (یونیکس)
* دم (عضو)
* TR
* uniq
* وی‌آی
* wc
* xargs

 |
| Shell builtins | 
* alias
* echo
* expr
* printf
* sleep
* test
* true and false
* unset
* Wait
* Yes

 |
| شبکه | 
* dig
* host
* Ifconfig
* inetd
* nc
* Netstat
* nslookup
* Ping
* rdate
* rlogin
* route
* ssh
* Traceroute

 |
| جستجو | 
* find
* Grep
* locate
* whatis
* whereis

 |
| مستندسازی | 
* apropos
* help
* man

 |
| گوناگون | 
* bc
* dc
* cal
* lp
* od

 |
| *فهرست ابزارهای یونیکس* |


1. ↑  McIlroy, M. D. (1987). *A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986* (PDF) (Technical report). CSTR. Bell Labs. 139.<nowiki>