| STRINGS(1) | GNU Development Tools | STRINGS(1) |
نام (NAME)
strings - چاپ دنبالههای نویسههای قابلچاپ در فایلها
خلاصه دستور (SYNOPSIS)
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...
توضیحات (DESCRIPTION)
برای هر file دادهشده، دستور GNU strings دنبالههای نویسههای قابلچاپ را که طول آنها دستکم ۴ نویسه باشد (یا تعداد مشخصشده توسط گزینههای زیر) و پس از آنها یک نویسهٔ غیرقابلچاپ آمده باشد، چاپ میکند.
بسته به نحوهٔ پیکربندی برنامه strings، این برنامه بهطور پیشفرض یا تمام دنبالههای قابلچاپِ یافتشده در هر فایل را نمایش میدهد، یا تنها دنبالههایی که در بخشهای دادهای بارگذاریپذیر و مقداردهیشده قرار دارند. اگر نوع فایل غیرقابل تشخیص باشد، یا اگر strings در حال خواندن از stdin باشد، همواره تمام دنبالههای قابلچاپی را که بیابد نمایش خواهد داد.
برای سازگاری با گذشته، هر فایلی که پس از گزینهٔ خط فرمانیِ صرفاً - بیاید، صرفنظر از وجود هرگونه گزینهٔ -d، بهطور کامل پویش خواهد شد.
strings عمدتاً برای تعیین محتوای فایلهای غیرمتنی مفید است.
گزینهها (OPTIONS)
- -a
- --all
- -
- کل فایل را
صرفنظر از
بخشهای
موجود در آن
و بارگذاری
یا
مقداردهی
اولیه شدن
آنها پویش
میکند.
بهطور
معمول این
رفتار
پیشفرض
است، اما strings
میتواند
بهگونهای
پیکربندی
شود که
گزینهٔ -d
بهجای آن
رفتار
پیشفرض
باشد.
گزینهٔ - وابسته به موقعیت است و strings را وادار میکند تا پویش کاملی را روی هر فایلی که پس از - در خط فرمان ذکر شده انجام دهد، حتی اگر گزینهٔ -d مشخص شده باشد.
- -d
- --data
- تنها رشتهها را از بخشهای دادهای مقداردهیشده و بارگذاریپذیر درون فایل چاپ میکند. این کار ممکن است حجم دادههای زائد در خروجی را کاهش دهد، اما برنامهٔ strings را نیز در معرض هرگونه آسیبپذیری امنیتی موجود در کتابخانهٔ BFD (که برای پویش و بارگذاری بخشها به کار میرود) قرار میدهد. میتوان strings را طوری پیکربندی کرد که این گزینه رفتار پیشفرض آن باشد. در چنین مواردی، میتوان از گزینهٔ -a برای پرهیز از بهکارگیری کتابخانهٔ BFD و در عوض چاپ تمام رشتههای یافتشده در فایل استفاده کرد.
- -f
- --print-file-name
- نام فایل را پیش از هر رشته چاپ میکند.
- --help
- خلاصهای از شیوهٔ استفاده از برنامه را روی خروجی استاندارد چاپ کرده و خارج میشود.
- -min-len
- -n min-len
- --bytes=min-len
- دنبالههایی از نویسههای نمایشپذیر را که طول آنها دستکم min-len نویسه باشد چاپ میکند. در صورت مشخص نشدن، حداقل طول پیشفرض ۴ استفاده میشود. تمایز بین نویسههای نمایشپذیر و غیرقابلنمایش به تنظیمات گزینههای -e و -U بستگی دارد. دنبالهها همواره در نویسههای کنترلی مانند خطجدید (newline) و بازگشتبهمبدأ (carriage return) پایان مییابند، اما نویسهٔ تب (tab) شامل این مورد نمیشود.
- -o
- مشابه -t o. در برخی دیگر از نسخههای strings، گزینهٔ -o بهجای آن مانند -t d عمل میکند. از آنجا که نمیتوان با هر دو روش سازگار بود، تنها یکی از آنها انتخاب شده است.
- -t radix
- --radix=radix
- آفست (موقعیت برحسب بایت) در فایل را پیش از هر رشته چاپ میکند. آرگومانِ تکنویسهای، مبنای عددیِ (radix) آفست را تعیین میکند: o برای مبنای هشت، x برای مبنای شانزده، یا d برای مبنای ده.
- -e encoding
- --encoding=encoding
- کدگذاری نویسهٔ رشتههایی که باید پیدا شوند را انتخاب میکند. مقدارهای ممکن برای encoding عبارتاند از: s = نویسههای تکبایتی ۷-بیتی (پیشفرض)، S = نویسههای تکبایتی ۸-بیتی، b = مقدار ۱۶-بیتی bigendian، l = مقدار ۱۶-بیتی littleendian، B = مقدار ۳۲-بیتی bigendian، و L = مقدار ۳۲-بیتی littleendian. برای یافتن رشتههای نویسهٔ عریض (wide character) مفید است (l و b برای نمونه روی کدگذاریهای یونیکد UTF-16/UCS-2 اعمال میشوند).
- -U [d|i|l|e|x|h]
- --unicode=[default|invalid|locale|escape|hex|highlight]
- نمایش
نویسههای
چندبایتی
با کدگذاری
UTF-8 را در
رشتهها
کنترل
میکند.
حالت
پیشفرض
(--unicode=default) این
است که هیچ
رفتار
ویژهای با
آنها صورت
نگیرد و در
عوض به
تنظیمات
گزینهٔ --encoding
تکیه شود.
سایر
مقدارهای
این گزینه
بهطور
خودکار --encoding=S
را فعال
میکنند.
گزینهٔ --unicode=invalid با آنها بهعنوان نویسههای غیرگرافیکی رفتار میکند و بنابراین بخشی از یک رشتهٔ معتبر به شمار نمیآیند. تمام گزینههای دیگر با آنها مانند نویسههای معتبر رشته رفتار میکنند.
گزینهٔ --unicode=locale آنها را در لوکال فعلی نمایش میدهد، که ممکن است از کدگذاری UTF-8 پشتیبانی کند یا نکند. گزینهٔ --unicode=hex آنها را بهصورت دنبالهای از بایتهای هگزادسیمال محصور بین نویسههای <> نمایش میدهد. گزینهٔ --unicode=escape آنها را بهصورت دنبالههای گریز (\uxxxx) نمایش میدهد و گزینهٔ --unicode=highlight آنها را بهصورت دنبالههای گریزِ هایلایتشده به رنگ قرمز نمایش میدهد (در صورتی که توسط دستگاه خروجی پشتیبانی شود). هدف از رنگآمیزی، جلب توجه به حضور دنبالههای یونیکد در جاهایی است که انتظار حضورشان نمیرود.
- -T bfdname
- --target=bfdname
- قالب کد هدفی (object code) غیر از قالب پیشفرض سیستم را مشخص میکند.
- -v
- -V
- --version
- شمارهٔ نسخهٔ برنامه را روی خروجی استاندارد چاپ کرده و خارج میشود.
- -w
- --include-all-whitespace
- بهطور پیشفرض نویسههای تب و فاصله در رشتههای نمایشدادهشده گنجانده میشوند، اما سایر نویسههای فاصلهٔ سفید مانند خطجدید و بازگشتبهمبدأ گنجانده نمیشوند. گزینهٔ -w این رفتار را تغییر میدهد تا همهٔ نویسههای فاصلهٔ سفید بهعنوان بخشی از رشته در نظر گرفته شوند.
- -s
- --output-separator
- بهطور پیشفرض، رشتههای خروجی با یک خطجدید از هم جدا میشوند. این گزینه امکان میدهد هر رشتهای را که میخواهید بهعنوان جداکنندهٔ رکورد خروجی تعیین کنید. در ترکیب با --include-all-whitespace که رشتهها ممکن است درون خود شامل خطجدید باشند، بسیار کاربردی است.
- @file
- گزینههای
خط فرمان را
از file
میخواند.
گزینههای
خواندهشده
بهجای
گزینهٔ
اصلی @file
جایگزین
میشوند.
اگر file وجود
نداشته
باشد، یا
خوانده
نشود، با
گزینه
بهصورت
لفظی رفتار
شده و حذف
نخواهد شد.
گزینهها در file با نویسهٔ فاصلهٔ سفید از هم جدا میشوند. با محصور کردن کل یک گزینه درون علامتهای نقلقول تکی یا دوتایی میتوان نویسهٔ فاصلهٔ سفید را درون آن گنجاند. هر نویسهای (از جمله بکاسلش) را میتوان با درج یک بکاسلش پیش از آن در گزینه گنجاند. خودِ file نیز میتواند گزینههای @file بیشتری داشته باشد؛ با هر یک از این گزینهها بهصورت بازگشتی برخورد خواهد شد.
همچنین ببینید (SEE ALSO)
ar(1), nm(1), objdump(1), ranlib(1), readelf(1) و مدخلهای Info برای binutils.
کپیرایت و تکثیر (COPYRIGHT)
Copyright (c) 1991-2025 Free Software Foundation, Inc.
اجازهٔ کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخهٔ ۱.۳ یا هر نسخهٔ بالاترِ منتشرشده توسط بنیاد نرمافزارهای آزاد (Free Software Foundation) اعطا میشود؛ بدون بخشهای تغییرناپذیر، بدون متون روی جلد، و بدون متون پشت جلد. یک نسخه از این مجوز در بخش با عنوان «GNU Free Documentation License» گنجانده شده است.
| 2026-01-23 | binutils-2.45.1 |