بیشترین مدیران فایل محبوب برای سیستم عامل در هسته لینوکس دارای ابزار جستجو نسبتا کاربردی هستند. با این حال، پارامترهایی که همیشه در آن وجود ندارد، برای کاربر برای جستجوی اطلاعات لازم کافی است. در این مورد، ابزار استاندارد که از طریق ترمینال اجرا می شود به نجات می رسد. این به شما اجازه می دهد تا به راحتی داده های مورد نیاز را در یک دایرکتوری خاص یا در کل سیستم با وارد کردن دستور، آرگومان و گزینه ای پیدا کنید.
محتوا
دستور find برای جستجوی اشیاء مختلف، از جمله فایل های هر فرمت و دایرکتوری از عمق های مختلف طراحی شده است. کاربر فقط نیاز به وارد کردن فرمان خود، تعیین مقدار دلخواه، و اختصاص دادن استدلال برای تنظیم پارامترهای فیلتر است. انجام این روش توسط ابزار خود معمولا زمان زیادی را صرف نمی کند، بلکه بر میزان اطلاعات اسکن شده بستگی دارد. اکنون به نمونه هایی از استفاده از پیدا کردن جزئیات بیشتر نگاه کنید.
برای شروع، من می خواهم کمی از تیم اصلی عقب نشینی کنم و روی موضوع اقدامات اضافی که در آینده در هنگام مدیریت از کنسول کمک می کند، لمس کنم. واقعیت این است که خدمات در توزیع های لینوکس توسط جستجو برای همه اقلام در یک کامپیوتر تیز نیست. تمام فرآیندها باید فقط با مکان کامل عناصر شروع شوند یا از طریق دستور cd به محل بروید. این را می توان به راحتی انجام داد:
cd /home/user/folder
بنویسید، جایی که کاربر نام پوشه خانگی کاربر است و پوشه نام دایرکتوری مورد نیاز است. اگر، قبل از استفاده از find ، دستورالعمل فوق را اجرا کنید، می توانید مسیر کامل را به فایل بگذارید، در صورتی که در مکان انتخاب شده باشد. چنین راه حلی، دستورات ورودی را در آینده به میزان قابل توجهی تسریع خواهد کرد.
هنگامی که جستجو را از کنسول آغاز کردید، نتیجه جستجو را در دایرکتوری خانگی خود از کاربر فعال دریافت خواهید کرد. در مثال دیگری، برای مثال، هنگامی که در طول جستجو بر اساس موقعیت مکانی فعال می شوید، در نتایج، تمام زیر پوشه ها و فایل های این مکان را در آنها مشاهده خواهید کرد.
فعال کردن یافتن بدون استدلال و گزینه های استفاده می شود زمانی که شما نیاز به مشاهده تمام موارد در یک بار. اگر نام آنها به طور کامل به رشته ها نمی آید، ارزش فرمان را تغییر می دهد تا find . -print
find . -print
فرمان برای نمایش فایل ها از طریق یک مسیر معین تقریبا همان چیزی است که ما در بالا ذکر کردیم. شما همچنین باید find
و پس از آن اضافه کنید ./folder
اگر می خواهید find ./home/user/downloads/folder
مربوط به دایرکتوری را در مکان فعلی پیدا کنید، یا برای اینکه بتوانید مسیر کامل را با تایپ کردن مشخص کنید، به عنوان مثال، find ./home/user/downloads/folder
، جایی که پوشه پایان دایرکتوری هر عنصر در خطوط جداگانه به ترتیب عمق آنها نمایش داده می شود.
گاهی اوقات نیاز به نمایش تنها اشیایی است که نام را برآورده می کنند. سپس کاربر نیاز به تنظیم یک گزینه جداگانه برای دستور دارد تا درخواست تجدید نظر را درک کند. خط ورودی فرم می گیرد: find .
-name "word"، جایی که کلمه یک کلمه کلیدی است که باید با دوگانه نوشته و حساس به حروف برای هر شخصیت باشد.
اگر شما دقیق مورد هر حرف را نمی دانید، یا می خواهید همه نام های تطبیقی را نمایش دهید بدون اینکه این پارامتر را وارد حساب کنید، find . -iname "word"
در کنسول find . -iname "word"
find . -iname "word"
.
برای فیلتر کردن نتایج به وسیله کلمه کلیدی، یکی دیگر به آرگومان نام افزوده می شود. فرمان فرم find . -not -name "word"
find . -not -name "word"
، که در آن کلمه یک کلمه است که باید حذف شود.
گاهی اوقات نیاز به پیدا کردن اشیاء با یک کلید وجود دارد، در حالی که دیگران را نادیده می گیرید. سپس چند گزینه جستجو به نوبه خود اختصاص داده می شود و خط ورودی زیر است: find . -name "word" -not name "*.txt"
find . -name "word" -not name "*.txt"
. لطفا توجه داشته باشید که استدلال دوم در نقل قول ها نشان می دهد " * .txt" ، که بدان معنی است که find نه تنها با نام ها، بلکه با فرمت های فایل که در این فرم مشخص شده اند، کار می کند.
همچنین یک اپراتور OR وجود دارد. این اجازه می دهد تا شما یک یا چند استدلال مناسب را در یک زمان پیدا کنید. هر کدام به طور جداگانه، با اضافه کردن استدلال مربوطه مشخص شده است. نتیجه چیزی شبیه این است: find -name "word" -o -name "word1"
.
فرمان یافتن کاربر حتی زمانی که نیاز به پیدا کردن محتویات دایرکتوری ها فقط به عمق مشخص شده را دارد، به عنوان مثال، تجزیه و تحلیل در داخل زیر پوشه سوم مورد نیاز نیست. برای تنظیم این محدودیت ها، find . -maxdepth N -name "word"
find . -maxdepth N -name "word"
، جایی که N حداکثر عمق است، و نام "کلمه" هر استدلال بعدی است.
در بسیاری از پوشه ها چند پوشه با محتویات مختلف وجود دارد. اگر تعداد زیادی از آنها وجود داشته باشد و جستجو فقط باید در موارد خاصی انجام شود، پس شما باید هنگام ورود به find ./folder ./folder1 -type f -name "word"
را مشخص کنید find ./folder ./folder1 -type f -name "word"
، جایی که ./folder ./folder1 یک فهرست دایرکتوری مناسب است، و نام "کلمه" - استدلال باقی مانده است.
بدون استدلال متناظر، اشیاء پنهان در دایرکتوری اسکن شده در کنسول نمایش داده نخواهد شد. بنابراین، کاربر به صورت دستی وارد یک گزینه اضافی برای پایان دادن به دستور: find ~ -type f -name ".*"
. شما لیست کاملی از تمام فایل ها را دریافت خواهید کرد، اما اگر برخی از آنها در دسترس نباشد، sudo
در خط قبل از جستجوی کلمه برای فعال کردن حقوق فوق کاربر وارد کنید.
هر کاربر می تواند تعداد نامحدودی از دایرکتوری ها و اشیاء را در مکان های مختلف ایجاد کند. سریع ترین راه برای پیدا کردن اطلاعاتی که متعلق به یکی از کاربران است، با استفاده از دستور find و یکی از استدلال های آن. در لیست ترمینال find . -user username
find . -user username
، که نام کاربری نام کاربری است. پس از ورود به اسکن، به طور خودکار شروع خواهد شد.
تقریبا همان طرح با گروه های کاربری کار می کند. تجزیه و تحلیل فایل های مرتبط با یکی از گروه ها از طریق find /var/www -group groupname
است. فراموش نکنید که تعداد زیادی از اشیا وجود دارد و گاهی اوقات طول می کشد تا همه آنها را صادر کنیم.
سیستم عامل به طور خودکار تاریخ تغییر هر یک از فایل های موجود را ذخیره می کند. دستور find به شما اجازه می دهد همه ی آنها را با پارامتر مشخص شده پیدا کنید. شما فقط باید sudo find / -mtime N
را ثبت sudo find / -mtime N
، جایی که N تعداد روزهای قبل است که آخرین شیء تغییر کرد. پیشوند sudo در اینجا مورد نیاز است برای دریافت اطلاعات در مورد فایلهایی که فقط برای کاربر فوق استفاده شده است.
اگر شما علاقه مند به دیدن آیتم هایی که اخیرا تعداد مشخصی از روزها را باز کردید، سپس خط ظاهر کمی را به sudo find / -atime N
هر شی به اندازه خودش است، به ترتیب، دستور جستجو برای فایل ها باید یک تابع باشد که به شما اجازه می دهد آنها را با این پارامتر فیلتر کنید. پیدا کردن قادر به انجام این کار است، کاربر فقط نیاز به اندازه توسط استدلال را تنظیم کنید. نگران نباشید، find / -size N
وارد find / -size N
، جایی که N حجم در بایت، مگابایت (M) یا گیگابایت (G) است.
شما می توانید طیف وسیعی از موارد مورد نظر را مشخص کنید. سپس کلاسیک ها به فرمان می آیند و به عنوان مثال، خط زیر را find / -size +500M -size -1000M
: find / -size +500M -size -1000M
. این تجزیه و تحلیل فایل های بیش از 500 مگابایت را نمایش می دهد، اما کمتر از 1000.
برخی از فایل ها یا پوشه ها خالی هستند. آنها فقط فضای دیسک اضافی را می گیرند و گاهی اوقات با تعامل طبیعی با کامپیوتر مواجه می شوند. آنها باید به منظور تصمیم گیری در مورد اقدامات بعدی find /folder -type f -empty
و find /folder -type f -empty
با این کار کمک خواهد کرد، where / folder جایی است که اسکن انجام می شود.
به طور جداگانه، من می خواهم به طور مختصر سایر استدلال های مفید اشاره کنم که از زمان به زمان برای کاربر مفید می شود:
-mount
- محدودیت فقط به سیستم فایل جاری -type f
- فقط نمایش فایل ها -type d
- فقط فهرست ها را نمایش می دهد؛ -nogroup
، -nouser
- جستجو برای فایل هایی که به هیچ گروه تعلق ندارند و به کاربر تعلق ندارند -version
- نسخه ی ابزار مورد استفاده را پیدا کنید. در این آشنایی با دستور find کامل است. اگر می خواهید جزئیات دیگر ابزار کنسول استاندارد سیستم عامل ها را در هسته لینوکس مطالعه کنید، توصیه می کنیم به منابع جداگانه ما در لینک زیر مراجعه کنید.
جزئیات بیشتر: دستورات اغلب مورد استفاده در ترمینال لینوکس
پس از جستجو برای اطلاعات مورد نیاز، می توانید هر گونه اقدام دیگر را با آنها انجام دهید، مثلا ویرایش، حذف یا مطالعه محتوای. این دیگر از «ترمینال» ساخته شده است . مثال هایی از استفاده آنها در زیر آمده است.
همچنین نگاه کنید به: نمونه هایی از دستورات گرپ / گربه / لس در لینوکس