پنج دستور جستجو در لینوکس

معرفی

پنج دستور جستجوی پرونده در لینوکس وجود دارد: whereis، locate، which، type، و find. هر یک از آنها ویژگی های خاص خود را دارند و برای سناریوهای جستجوی خاص طراحی شده اند. این راهنما شما را با هر دستور آشنا می کند و نمونه های استفاده را نشان می دهد. برای مطالعه بیشتر در مورد هر یک از این دستورات ، بهتر است که manpage مناسب را مرور کنید.

whereis

از این whereisدستور برای جستجوی فایلهای باینری ، کد منبع و صفحات کتابچه راهنمای آنلاین در چندین فهرست نصب استاندارد برای هر نام برنامه مشخص شده استفاده می شود.

از آنجا که whereisدر هر مکانی روی سیستم شما جستجو نمی شود ، هیچ پرونده ای از این فهرست های خاص پیدا نمی شود. به همین دلیل ، نتیجه جستجو را سریعاً دریافت خواهید کرد یا نه ، می توانید دریافت کنید.

همچنین ، آن دسته از دستوراتی را که مستقیماً درون پوسته ساخته شده اند ، جستجو نمی کند.

به عنوان مثال ، اگر می خواهید اطلاعاتی در مورد lsفرمان بیابید ، دستور زیر را در ترمینال خود اجرا کنید:

whereis ls

بازخوردهایی مانند:

ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

در نتیجه ، /bin/lsباینری که می خواهید آن را پیدا کنید ، دو مورد دیگر manpages برای lsبرنامه هستند ، هیچ کد منبع برای lsبرنامه یافت نشد.

/bin/lsپرونده را در فهرست خانه و دایرکتوری خود کپی کنید و دوباره دستور /usr/binرا اجرا whereisکنید:

cp /bin/ls ~
cp /bin/ls /usr/bin/ls
whereis ls

همانطور که می بینید ، فقط /bin/lsو /usr/bin/lsدر نتیجه جستجو پیدا شد. این lsبرنامه در فهرست خانه شما یافت نشد ، زیرا فهرست خانه شما یکی از آن فهرست های نصب استاندارد نیست.

ls: /bin/ls /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

اگر دستور زیر را اجرا کردید:

whereis cd

خروجی مشابه خط زیر را مشاهده خواهید کرد. هیچ پرونده دودویی کشف نشده است زیرا cdیک دستور داخلی از پوسته است.

cd: /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz

locate

از این locateدستور برای یافتن پرونده ها با نام به کمک پایگاه داده ( /var/lib/mlocate/mlocate.db) استفاده می شود. این دیتابیس در اصل عکس فوری از طرح سیستم فایل شماست. هر پرونده در این پایگاه داده که با درخواست شما مطابقت داشته باشد ، در نتیجه جستجو ذکر می شود. به طور پیش فرض ، این locateدستور از query شما برای مطابقت با هر بخشی از کل نام هر رکورد ، از جمله نام مسیر استفاده می کند. بنابراین ، تعداد پرونده های همسان شده در نتیجه جستجو می تواند بیش از آنچه ا��تظار داشتید باشد.

از آنجا که پایگاه داده منسوخ می شود ، نتیجه جستجوی locateفرمان دقیق تر می شود. ممکن است متوجه پرونده هایی شوید که دیگر وجود ندارند ، یا مسابقات مربوط به پرونده های تازه ایجاد شده را مشاهده نخواهید کرد. به طور پیش فرض ، mlocate.dbپایگاه داده به طور خودکار یک بار در روز به روز می شود. می توانید از این updatedbدستور برای به روزرسانی دستی آن استفاده کنید.

از آنجا که جستجو به جای سیستم فایل بر روی پایگاه داده انجام می شود ، سرعت جستجو بسیار سریع است.

اگر دستور زیر را اجرا کردید:

locate ls

به جای نتیجه مورد انتظار خود سوابق زیادی به دست خواهید آورد.

به منظور دقیق تر شدن نتیجه جستجو ، می توانید از -bپرچم استفاده کنید تا محدوده جستجو را محدود کنید ، از جستجوی خود برای مطابقت با نام اصلی هر سابقه استفاده کنید:

locate -b "\ls"

این بار ، موقعیت مکانی هر پرونده را دقیقاً lsدر سیستم پرونده خود فراخوانی خواهید کرد:

/bin/ls

which

این whichدستور ، دستوری را که در مقدار متغیر محیط تعیین کرده اید جستجو می کند PATHو نتیجه اول را بطور پیش فرض باز می گرداند. اگر در حال whichجستجوی نام مستعار هستید ، این دستور قبل از انجام جستجوی شما دستور واقعی برای نام مستعار را تعیین می کند.

این whichدستور همچنین به دلیل سادگی بسیار سریع است.

استفاده از whichدستور ساده است:

which your_command

اگر می خواهید به جای دستور اول تمام دستورات همسان را نشان دهید ، از -aپرچم استفاده کنید :

which -a your_command

در اینجا مثالی برای جستجوی دستوری که aliated شده است آورده شده است:

which ll

نتیجه جستجو:

alias ll='ls -l --color=auto'
    /bin/ls

type

به طور پیش فرض ، typeدستور نحوه تفسیر نام فرمان را نشان می دهد. نتایج احتمالی شامل نام مستعار ، یک کلمه کلیدی ، یک تابع ، یک داخلی یا یک پرونده است. درست مانند whereisدستور ، این typeدستور فقط در چندین دایرکتوری نصب استاندارد برای جستجوی پاسخ شما جستجو خواهد کرد.

چند نمونه برای تایپ دستورات مختلف:

دستور داخلی ساخته شده از پوسته:

type cd

cd is a shell builtin

یک پرونده باینری در سیستم پرونده:

type sudo

sudo is /usr/bin/sudo

نام مستعار:

type ls

ls is aliased to `ls --color=auto'

find

از بین پنج فرمان جستجوی فایل معرفی شده در این آموزش ، این findفرمان قدرتمندترین است. همچنین کمترین سرعت آن است. بر خلاف چهار دستور دیگر ، این findدستور در واقع فایل شما را در کل سیستم فایل جستجو می کند ، یک گره i توسط یک گره i. با استفاده از این findدستور ، می توانید از معیارهای پرس و جو پیشرفته برای یافتن هر پرونده موردنیاز خود استفاده کنید ، حتی علاوه بر این عملکردهایی را که روی پرونده هایی که پیدا شده اید نیز انجام دهید.

معیارهای جستجوی findفرمان برای توضیح در یک مقاله کوتاه بسیار پیچیده است ، در عوض در اینجا چند مثال آورده شده است.

قالب اصلی findفرمان:

find [path] [option] [action]

برای یافتن کلیه پرونده ها در فهرست کار و تمام زیر فهرست های آن:

find

برای یافتن پرونده ای به نام aaaدر فهرست خانه و همه زیر فهرست های آن:

find ~ -name 'aaa'

برای یافتن کلیه پرونده ها در سیستم پرونده ای که در 24 ساعت گذشته اصلاح شده اند:

find / -mtime 0

برای یافتن کلیه پرونده ها در فهرست وب و کلیه زیر فهرست های آن که متعلق به کاربر است nginx:

find /usr/share/nginx/html/ -user nginx

برای یافتن کلیه پرونده های موجود در دایرکتوری کاری که مجوز آنها وجود دارد 0744:

find -perm -0744

برای یافتن پرونده ای با نام aaaدر فهرست کار و لیست اطلاعات دقیق آن:

find -name 'aaa' -exec ls -l {} \;


Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد