اقدامات از پیش تعریف شده
بیایید کمی کار انجام دهیم! داشتن لیستی از نتایج ما پیدا کردن دستور مفید است، اما کاری که ما واقعاً می خواهیم انجام دهیم این است که روی موارد موجود در لیست عمل کنیم. خوشبختانه، پیدا کردن اجازه می دهد تا اقدامات بر اساس نتایج جستجو انجام شود. مجموعه ای از اقدامات از پیش تعریف شده و چندین روش برای اعمال اقدامات تعریف شده توسط کاربر وجود دارد. ابتدا اجازه دهید به چند عمل از پیش تعریف شده نگاه کنیم:
جدول 17-6: اقدامات یافتن از پیش تعریف شده
شرح اقدام
شرح اقدام
-delete فایل منطبق در حال حاضر را حذف کنید.
-ls معادل را انجام دهید ls -dils در فایل منطبق
خروجی به خروجی استاندارد ارسال می شود.
-چاپ خروجی نام مسیر کامل فایل مطابق با خروجی استاندارد. اگر عمل دیگری مشخص نشده باشد، این اقدام پیش فرض است.
پس از انجام مسابقه، ترک را ترک کنید.
همانند آزمایشات، اقدامات بسیار بیشتری نیز وجود دارد. را ببینید پیدا کردن صفحه مرد برای جزئیات کامل در اولین مثال ما این کار را انجام دادیم:
پیدا کردن ~
پیدا کردن ~
که لیستی از هر فایل و زیر شاخه موجود در فهرست اصلی ما را تولید می کند. این یک لیست تولید کرد زیرا -چاپ اگر عمل دیگری مشخص نشده باشد، عمل ضمنی است. بنابراین فرمان ما می تواند به صورت زیر بیان شود:
پیدا کردن ~ -چاپ
پیدا کردن ~ -چاپ
ما می توانید استفاده کنید پیدا کردن برای حذف فایل هایی که معیارهای خاصی را دارند. به عنوان مثال، برای حذف فایل هایی که
پسوند فایل ".BAK" (که اغلب برای تعیین فایل های پشتیبان استفاده می شود)، می توانیم از این دستور استفاده کنیم:
پیدا کردن ~ -type f -name '*.BAK' -delete
پیدا کردن ~ -type f -name '*.BAK' -delete
در این مثال، هر فایلی در فهرست اصلی کاربر (و زیرشاخههای آن) برای نام فایلهایی که با ختم میشوند جستجو میشوند. .BAK. هنگامی که آنها پیدا می شوند، حذف می شوند.
هشدار: ناگفته نماند که باید از احتیاط شدید استفاده کنید هنگام استفاده از -حذف عمل. همیشه ابتدا دستور را با جایگزین کردن آن تست کنید
عمل چاپ برای -حذف برای تأیید نتایج جستجو.
قبل از اینکه ادامه دهیم، بیایید نگاهی دیگر به نحوه تأثیر عملگرهای منطقی بر اقدامات بیندازیم. دستور زیر را در نظر بگیرید:
find ~ -type f -name '*.BAK' -print
find ~ -type f -name '*.BAK' -print
همانطور که دیدیم، این دستور به دنبال هر فایل معمولی (-type f) که نام آن با .BAK (-name) ختم می شود، می گردد. '*.BAK') و نام مسیر نسبی هر فایل منطبق را به خروجی استاندارد (-print) خروجی می دهد. با این حال، دلیل اجرای دستور به روشی که انجام می دهد، با روابط منطقی بین هر یک از تست ها و اقدامات تعیین می شود. به یاد داشته باشید، به طور پیش فرض، یک رابطه ضمنی - و بین هر آزمون و عمل وجود دارد. همچنین میتوانیم دستور را به این شکل بیان کنیم تا روابط منطقی را آسانتر ببینیم:
پیدا کردن ~ -type f -and -name '*.BAK' -and -print
پیدا کردن ~ -type f -and -name '*.BAK' -and -print
با بیان کامل دستور ما، بیایید ببینیم که چگونه عملگرهای منطقی بر اجرای آن تأثیر میگذارند:
تست/عمل فقط در صورتی انجام می شود که...
تست/عمل فقط در صورتی انجام می شود که...
-چاپ -type f و -name '*.BAK' درست هستند
-name '*.BAK' نوع f درست است
نوع f همیشه انجام می شود، زیرا اولین آزمایش/عمل در یک است
-و رابطه
از آنجایی که رابطه منطقی بین تست ها و اقدامات تعیین می کند که کدام یک از آنها انجام شود، می بینیم که ترتیب تست ها و اقدامات مهم است. به عنوان مثال، اگر قرار بود آزمایش ها و اقدامات را دوباره ترتیب دهیم تا -چاپ اقدام اولین مورد بود، فرمان بسیار متفاوت عمل می کرد:
پیدا کردن ~ -print -and -type f -and -name '*.BAK'
پیدا کردن ~ -print -and -type f -and -name '*.BAK'
این نسخه از دستور هر فایل ( -چاپ عملکرد همیشه درست ارزیابی می شود) و سپس نوع فایل و پسوند فایل مشخص شده را آزمایش کنید.