STRINGS(1) GNU Development Tools STRINGS(1)

avr-strings - چاپ رشته‌های نویسه‌های قابل‌چاپ در فایل‌های باینری معماری AVR

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 برای مبنای هشت (اکتال)، x برای مبنای شانزده (هگزادسیمال)، یا d برای مبنای ده (دسیمال).
انتخاب کدگذاری نویسه‌ای رشته‌هایی که باید پیدا شوند. مقادیر ممکن برای encoding عبارتند از: s = نویسه‌های تک‌بایتی ۷ بیتی (پیش‌فرض)، S = نویسه‌های تک‌بایتی ۸ بیتی، b = ۱۶ بیتی با ترتیب بایت بزرگ (big-endian)، l = ۱۶ بیتی با ترتیب بایت کوچک (little-endian)، B = ۳۲ بیتی با ترتیب بایت بزرگ، و L = ۳۲ بیتی با ترتیب بایت کوچک. این گزینه برای یافتن رشته‌های نویسه عریض (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 آن‌ها را به صورت توالی‌های گریز که با رنگ قرمز برجسته شده‌اند (در صورت پشتیبانی دستگاه خروجی) نمایش می‌دهد. رنگ‌آمیزی با این هدف انجام می‌شود تا توجه کاربر به وجود توالی‌های یونیکد در جاهایی که انتظار حضورشان نمی‌رود جلب شود.

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

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

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

حق نشر © ۱۹۹۱-۲۰۲۶ بنیاد نرم‌افزارهای آزاد (Free Software Foundation, Inc.)

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

2026-07-30 binutils-2.47