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 مشخص‌شده، دستور strings گنو توالی نویسه‌های قابل‌چاپی را که طول آن‌ها دست‌کم ۴ نویسه باشد (یا تعدادی که با گزینه‌های زیر مشخص شده است) و پس از آن‌ها یک نویسه غیرقابل‌چاپ می‌آید، چاپ می‌کند.

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

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

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

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

گزینه - به موقعیت مکانی وابسته است و 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).
انتخاب کدگذاری نویسه‌ای رشته‌هایی که باید پیدا شوند. مقادیر ممکن برای 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 آن‌ها را به شکل توالی‌های گریزِ برجسته‌شده با رنگ قرمز نمایش می‌دهد (در صورتی که توسط دستگاه خروجی پشتیبانی شود). هدف از این رنگ‌آمیزی، جلب توجه به وجود توالی‌های یونیکد در جاهایی است که انتظار حضور آن‌ها نمی‌رود.

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

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

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

Copyright (c) 1991-2025 Free Software Foundation, Inc.

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

2026-01-23 binutils-2.45.1