STRINGS(1) GNU Development Tools STRINGS(1)

strings - چاپ توالی‌های کاراکترهای قابل چاپ در فایل‌ها

strings [-afovV] [-min-len]
[-n min-len] [--bytes=min-len]
[-t radix] [--radix=radix]
[-e encoding] [--encoding=encoding]
[-U method] [--unicode=method]
[-] [--all] [--print-file-name]
[-T bfdname] [--target=bfdname]
[-w] [--include-all-whitespace]
[-s] [--output-separator sep_string]
[--help] [--version] file...

به ازای هر file ارائه‌شده، دستور GNU strings توالی‌های کاراکترهای قابل چاپی را که حداقل ۴ کاراکتر طول دارند (یا طولی که با گزینه‌های زیر تعیین می‌شود) و پس از آن‌ها یک کاراکتر غیرقابل چاپ قرار دارد، چاپ می‌کند.

بسته به نحوهٔ پیکربندی برنامهٔ strings، این دستور به طور پیش‌فرض یا تمام توالی‌های قابل چاپی را که می‌تواند در هر فایل پیدا کند نمایش می‌دهد، یا تنها توالی‌هایی را نمایش می‌دهد که در بخش‌های داده‌ای بارگذاری‌شدنی و مقداردهی‌اولیه شده قرار دارند. اگر نوع فایل غیرقابل تشخیص باشد، یا اگر strings در حال خواندن از ورودی استاندارد (stdin) باشد، همواره تمام توالی‌های قابل چاپی را که پیدا کند نمایش خواهد داد.

برای سازگاری با گذشته، هر فایلی که بعد از گزینهٔ خط فرمانیِ صرفاً - بیاید نیز بدون توجه به وجود هرگونه گزینهٔ -d به طور کامل پویش خواهد شد.

strings عمدتاً برای پی بردن به محتویات فایل‌های غیرمتنی سودمند است.

-
پویش تمام فایل، صرف‌نظر از این‌که چه بخش‌هایی درون آن قرار دارد یا این‌که آیا آن بخش‌ها بارگذاری یا مقداردهی اولیه شده‌اند یا خیر. به طور معمول این رفتار پیش‌فرض است، اما strings می‌تواند طوری پیکربندی شود که در عوض گزینهٔ -d رفتار پیش‌فرض باشد.

گزینهٔ --all یا - به جایگاه قرارگیری وابسته است و strings را وادار می‌کند تا هر فایلی را که پس از - در خط فرمان آورده شده است، حتی اگر گزینهٔ -d تعیین شده باشد، به صورت کامل پویش کند.

تنها چاپ رشته‌ها از بخش‌های داده‌ای مقداردهی‌اولیه شده و بارگذاری‌شده در فایل. این کار ممکن است حجم داده‌های غیرضروری در خروجی را کاهش دهد، اما همچنین برنامهٔ strings را در معرض هرگونه نقص امنیتی احتمالی در کتابخانهٔ BFD که برای پویش و بارگذاری بخش‌ها به کار می‌رود قرار می‌دهد. Strings می‌تواند به گونه‌ای پیکربندی شود که این گزینه رفتار پیش‌فرض باشد. در چنین مواردی، می‌توان از گزینهٔ -a استفاده کرد تا از به کار بردن کتابخانهٔ BFD پرهیز شود و در عوض صرفاً تمام رشته‌های یافت‌شده در فایل چاپ شوند.
چاپ نام فایل پیش از هر رشته.
چاپ خلاصه‌ای از کاربرد برنامه روی خروجی استاندارد و خروج.
چاپ توالی‌هایی از کاراکترهای قابل نمایش که طول آن‌ها حداقل min-len کاراکتر باشد. در صورت عدم تعیین، طول حداقل پیش‌فرض ۴ استفاده می‌شود. تمایز بین کاراکترهای قابل نمایش و غیرقابل نمایش به تنظیمات گزینه‌های -e و -U بستگی دارد. توالی‌ها همواره در کاراکترهای کنترلی نظیر خط جدید (new-line) و بازگشت به سر خط (carriage-return) خاتمه می‌یابند، اما در کاراکتر تب (tab) خاتمه پیدا نمی‌کنند.
مشابه -t o. در برخی نسخه‌های دیگر strings، گزینهٔ -o مانند -t d عمل می‌کند. از آنجا که سازگاری با هر دو روش ممکن نبود، ما صرفاً یکی را انتخاب کردیم.
چاپ آفست درون فایل پیش از هر رشته. آرگومان تک‌کاراکتری مبنای آفست را تعیین می‌کند: o برای هشت‌هشتی (octal)، x برای شانزده‌شانزدهی (hexadecimal)، یا d برای ده‌دهی (decimal).
Select the character encoding of the strings that are to be found. مقادیر ممکن برای encoding عبارتند از: s = کاراکترهای تک‌بایتی ۷-بیتی (پیش‌فرض)، S = کاراکترهای تک‌بایتی ۸-بیتی، b = ۱۶-بیتی bigendian، l = ۱۶-بیتی littleendian، B = ۳۲-بیتی bigendian، L = ۳۲-بیتی littleendian. این گزینه برای پیدا کردن رشته‌های کاراکتر عریض (wide character) مفید است (l و b مثلاً در مورد کدگذاری‌های یونیکد UTF-16/UCS-2 صدق می‌کنند).
کنترل شیوهٔ نمایش کاراکترهای چندبایتی با کدگذاری UTF-8 در رشته‌ها. حالت پیش‌فرض (--unicode=default) رفتار خاصی با آن‌ها ندارد و به جای آن به تنظیمات گزینهٔ --encoding تکیه می‌کند. مقادیر دیگر برای این گزینه، به طور خودکار --encoding=S را فعال می‌کنند.

گزینهٔ --unicode=invalid با آن‌ها به عنوان کاراکترهای غیرگرافیکی رفتار کرده و در نتیجه آن‌ها را بخشی از یک رشتهٔ معتبر در نظر نمی‌گیرد. تمام گزینه‌های باقی‌مانده با آن‌ها به عنوان کاراکترهای معتبر رشته رفتار می‌کنند.

گزینهٔ --unicode=locale آن‌ها را در لوکال فعلی نمایش می‌دهد، که ممکن است از کدگذاری UTF-8 پشتیبانی بکند یا نکند. گزینهٔ --unicode=hex آن‌ها را به صورت توالی‌های بایتی هگزادسیمال درون کاراکترهای <> نمایش می‌دهد. گزینهٔ --unicode=escape آن‌ها را به عنوان توالی‌های گریز (\uxxxx) نمایش می‌دهد و گزینهٔ --unicode=highlight آن‌ها را به صورت توالی‌های گریز برجسته شده به رنگ قرمز نمایش می‌دهد (در صورتی که توسط دستگاه خروجی پشتیبانی شود). هدف از رنگ‌آمیزی، جلب توجه به وجود توالی‌های یونیکد در جاهایی است که شاید انتظار آن‌ها نرود.

تعیین یک قالب کد شیء (object code) غیر از قالب پیش‌فرض سامانهٔ شما.
چاپ شماره نسخهٔ برنامه در خروجی استاندارد و خروج.
به طور پیش‌فرض، کاراکترهای تب (tab) و فاصله (space) در رشته‌هایی که نمایش داده می‌شوند لحاظ می‌شوند، اما سایر کاراکترهای فاصلهٔ خالی (whitespace) نظیر خط جدید و بازگشت به سر خط لحاظ نمی‌شوند. گزینهٔ -w این رفتار را تغییر می‌دهد تا تمام کاراکترهای فاصلهٔ خالی بخشی از رشته در نظر گرفته شوند.
به طور پیش‌فرض، رشته‌های خروجی با یک خط جدید از هم جدا می‌شوند. این گزینه به شما اجازه می‌دهد هر رشته‌ای را برای استفاده به عنوان جداکنندهٔ رکوردهای خروجی مشخص کنید. این گزینه هنگام استفاده از --include-all-whitespace که در آن رشته‌ها ممکن است درون خود حاوی خط جدید باشند، سودمند است.
@file
خواندن گزینه‌های خط فرمان از file. گزینه‌های خوانده‌شده در جایگاه گزینهٔ اصلی @file جایگزین می‌شوند. اگر file وجود نداشته باشد، یا نتوان آن را خواند، با این گزینه به طور تحت‌اللفظی رفتار خواهد شد و حذف نمی‌شود.

گزینه‌ها در file با نویسه‌های فاصلهٔ خالی از هم جدا می‌شوند. می‌توان یک کاراکتر فاصلهٔ خالی را با قرار دادن کل گزینه در گیومهٔ تکی یا دوتایی، درون یک گزینه گنجاند. هر کاراکتری (از جمله یک بک‌اسلش) می‌تواند با پیشوند کردن یک بک‌اسلش به کاراکتر مورد نظر، درون آن گنجانده شود. خود file می‌تواند شامل گزینه‌های @file بیشتری باشد؛ هر یک از این گزینه‌ها به صورت بازگشتی پردازش خواهند شد.

ar(1), nm(1), objdump(1), ranlib(1), readelf(1) و مدخل‌های Info برای binutils.

کپی‌رایت © 1991-2026 بنیاد نرم‌افزار آزاد (Free Software Foundation, Inc.)

اجازه کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخه ۱.۳ یا هر نسخه بعدی منتشرشده توسط بنیاد نرم‌افزار آزاد اعطا می‌شود؛ بدون بخش‌های تغییرناپذیر، بدون متون روی جلد، و بدون متون پشت جلد. یک نسخه از این مجوز در بخشی با عنوان «GNU Free Documentation License» گنجانده شده است.

2026-08-03 binutils-2.47