TEST(1) General Commands Manual TEST(1)

test - بررسی نوع فایل‌ها و مقایسه مقادیر

test EXPRESSION
test
[ EXPRESSION ]
[ ]
[ OPTION

بررسی نوع فایل‌ها و مقایسه مقادیر.

نمایش راهنما
نمایش نسخه

با وضعیت خروجی تعیین‌شده توسط EXPRESSION خارج می‌شود.

در صورت حذف EXPRESSION، مقدار پیش‌فرض نادرست (false) است. در غیر این صورت، EXPRESSION درست یا نادرست بوده و وضعیت خروج را تعیین می‌کند. این عبارت یکی از موارد زیر است:

( EXPRESSION )
عبارت EXPRESSION درست است

! EXPRESSION
عبارت EXPRESSION نادرست است

EXPRESSION1 -a EXPRESSION2
هر دو عبارت EXPRESSION1 و EXPRESSION2 درست هستند

EXPRESSION1 -o EXPRESSION2
دست‌کم یکی از عبارات EXPRESSION1 یا EXPRESSION2 درست است

عملیات رشته‌ای:

-n STRING
طول STRING غیرصفر است

STRING
معادل -n STRING

-z STRING
طول STRING صفر است

STRING1 = STRING2
رشته‌ها برابر هستند

STRING1 != STRING2
رشته‌ها نابرابر هستند

STRING1 > STRING2
مقدار STRING1 در لوکال (locale) جاری بزرگ‌تر از STRING2 است

STRING1 < STRING2
مقدار STRING1 در لوکال (locale) جاری کوچک‌تر از STRING2 است

مقایسه‌های عدد صحیح:

INTEGER1 -eq INTEGER2
مقدار INTEGER1 برابر با INTEGER2 است

INTEGER1 -ge INTEGER2
مقدار INTEGER1 بزرگ‌تر یا مساوی INTEGER2 است

INTEGER1 -gt INTEGER2
مقدار INTEGER1 بزرگ‌تر از INTEGER2 است

INTEGER1 -le INTEGER2
مقدار INTEGER1 کوچک‌تر یا مساوی INTEGER2 است

INTEGER1 -lt INTEGER2
مقدار INTEGER1 کوچک‌تر از INTEGER2 است

INTEGER1 -ne INTEGER2
مقدار INTEGER1 نابرابر با INTEGER2 است

عملیات فایلی:

FILE1 -ef FILE2
فایل‌های FILE1 و FILE2 شماره دستگاه و اینود (inode) یکسانی دارند

FILE1 -nt FILE2
فایل FILE1 جدیدتر (از نظر تاریخ تغییر) از FILE2 است

FILE1 -ot FILE2
فایل FILE1 قدیمی‌تر از FILE2 است

-b FILE
فایل FILE وجود دارد و یک فایل ویژه بلوکی (block special) است

-c FILE
فایل FILE وجود دارد و یک فایل ویژه نویسه‌ای (character special) است

-d FILE
فایل FILE وجود دارد و یک دایرکتوری است

-e FILE
فایل FILE وجود دارد

-f FILE
فایل FILE وجود دارد و یک فایل معمولی (regular file) است

-g FILE
فایل FILE وجود دارد و بیت set-group-ID آن تنظیم شده است

-G FILE
فایل FILE وجود دارد و متعلق به شناسه گروه مؤثر (effective group ID) است

-h FILE
فایل FILE وجود دارد و یک پیوند نمادین است (مشابه -L)

-k FILE
فایل FILE وجود دارد و بیت چسبان (sticky bit) آن فعال است

-L FILE
فایل FILE وجود دارد و یک پیوند نمادین است (مشابه -h)

-N FILE
فایل FILE وجود دارد و از زمان آخرین خوانده شدن تغییر یافته است

-O FILE
فایل FILE وجود دارد و متعلق به شناسه کاربر مؤثر (effective user ID) است

-p FILE
فایل FILE وجود دارد و یک پایپ نام‌گذاری‌شده (named pipe) است

-r FILE
فایل FILE وجود دارد و مجوز خواندن به آن داده شده است

-s FILE
فایل FILE وجود دارد و اندازه آن بزرگ‌تر از صفر است

-S FILE
فایل FILE وجود دارد و یک سوکت است

-t FD
توصیف‌گر فایل FD روی یک ترمینال باز شده است

-u FILE
فایل FILE وجود دارد و بیت set-user-ID آن تنظیم شده است

-w FILE
فایل FILE وجود دارد و مجوز نوشتن به آن داده شده است

-x FILE
فایل FILE وجود دارد و مجوز اجرا (یا جستجو) به آن داده شده است

به‌جز -h و -L، تمام آزمون‌های مربوط به FILE پیوندهای نمادین را دنبال می‌کنند (dereference). توجه داشته باشید که پرانتزها برای پوسته‌ها باید با نویسه گریز مشخص شوند (مثلاً با بک‌اسلش). مقدار INTEGER همچنین می‌تواند -l STRING باشد که به طول STRING ارزیابی می‌شود.

نکته: عملگرهای دودویی -a و -o ذاتاً مبهم هستند. به‌جای آن‌ها از test EXPR1 && test EXPR2 یا test EXPR1 || test EXPR2 استفاده کنید.

نکته: دستور [ از گزینه‌های --help و --version پشتیبانی می‌کند، اما test چنین نیست. دستور test با هر یک از آن‌ها مانند هر STRING غیرخالی دیگری رفتار می‌کند.

نکته: ممکن است پوسته شما نسخه اختصاصی خود از test و/یا [ را داشته باشد که معمولاً جایگزین نسخه توصیف‌شده در اینجا می‌شود. لطفاً برای جزئیات گزینه‌هایی که پشتیبانی می‌کند به مستندات پوسته خود مراجعه کنید.

هرگاه stderr یک ترمینال باشد، خطاها با بازتاب عبارت و درج یک علامت هشتک (caret) زیر آرگومان معیوب گزارش می‌شوند؛ هر چیز دیگری که stderr را بخواند، همان پیام تک‌خطی معمول را دریافت می‌کند.

v(uutils coreutils) 0.11.0

2026-09-01