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...

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

بسته به نحوه پیکربندی برنامه 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.

حق نشر (c) 1991-2026 Free Software Foundation, Inc.

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

2026-08-31 binutils-2.47