جستجو فایل ها و پوشه ها در لینوکس توسط SSH

۲۸اردیبهشت ۱۳۹۴
۶۱۷
ssh اس اس اچ

جستجو فایل در لینوکس

در برخی موارد شما نیاز پیدا میکنید محل یه فایل را پیدا کنید و یا یک متن مشخص را در کلیه فایلهای تحت یک دایرکتوری جستجو کنید

SSH دو دستور متفاوت برای انجام این کار ارائه می نماید.

برای جستجو کردن محل یک فایل میتوانید از دستور find استفاده کنید .

دستور find ابزار قدرتمندی است که آرگومانهای متعددی را گرفته و بدین ترتیب به شما اجازه میدهد عبارت مورد نظر را دقیقا جستجو کنید . (به عنوان مثال جستجو بر اساس نام ، نوع و یا تاریخ ایجاد )

 

به عنوان مثال برای جستجوی فایلی به نام myfile.txt تحت پوشه فعلی و سایر زیر پوشه ها ، میتوانید دستور زیر را به کار برید :

find . -name myFile.txt

 

اگر در مورد نام فایل مطمئن نیستید و یا قسمتی از نام فایل را می دانید ، میتوانید از الگوی wildcard استفاده کنید :

find . -name “myFile*”

 

اگ می خواهید فقط پوشه ها را لیست کنید و فایل ها در نتایج ظاهر نشوند :

find . -type d

 

اگر بخواهید فقط فایلهایی که طی دو روز اخیر تغییر پیدا کرده اند را پیدا کنید :

find . -mtime -2

 

شما حتی می توانید یه متن مشخص را داخل محتویات فایلها جستجو کنید ، دستوری که برای این کار استفاده می شود دستور grep می باشد . grab ابزار قدرتمندی است که آرگومانهای متعددی را می پذیرد. برای مشاهده یک لیست کامل پیشنهاد می شود دستور man grap را تایپ کنید .

 

یک مثال ساده از کاربرد grap در پیدا کردن یک متن مشخص مانند زیر است :

grep “database” configuration.php

دستور بالا باعث میشود grep به دنبال کلمه database در فایل configuration.php بگردد و خطی که شامل آن است را نمایش میدهد . اگر نمیدانید کدام فایل شامل متن است ، میتوانید این دستور را بکار ببرید .

 

grep -r -H “database” *

این دستور باعث میشود grep کلمه database را به صورت بازگشتی جستجو و در قالب فرمت قابل خواندن برای انسان در تمامی فایلهای تحت دایرکتوری کنونی ارائه دهد .

 

اگر بخواهید فقط نام فایل هایی که شامل عبارت مورد جستجو هستند نمایش داده شوند و خطی که شامل آن عبارت است نمایش داده نشود ، کافیست از عبارت -l استفاده کنید .

grep -l “database” *

این دستور تمامی فایل هایی که اسم آنها شامل کلمه database است را نمایش می دهد ولی خطی که شامل آن کلمه است را نمایش نمیدهد .

 

دستور grep همچنین برای فیلتر کردن خروجی حاصل از سایر دستورات نیز بکار میرود . برای مثال دستور زیر تنها خروجی های فایل configuration.php را نمایش می دهد .

ls -la | grep configuration.php

 

در برخی موارد بسیار نادر ممکن است شما نخواهید از دستورات grep یا find استفاده کنید ، به عنوان مثال برای پیدا کردن یه فایل مشخص در سراسر سرور بهترین گزینه استفاده از دستورجایگزین whereis یا which است .

whereis perl

یا

which perl

اجرای دستورات فوق، مکان فایل های اجرایی perl را به همراه مسیر کاملشان نمایش خواهد داد.

جستجو فایل در لینوکس

اشتراک گذاری

mahsa

ارسال نظر

نشانی ایمیل شما منتشر نخواهد شد.
تمام حقوق برای آذرآنلاین محفوظ می باشد.
enamad