شما هنوز به سیستم وارد نشده اید.

اطلاعیه

#1 2020-07-17 10:19:36

system76
Moderator
از : میپرسی از من اهل كجايم؟
ثبت شده: 2018-02-03
ارسال ها: 33
وب سایت

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

پیدا کردن تمام فایلهایی که در مسیر جاری پسوند .m4a و نام  Rattle That Lock را دارند.


find . -iname "*.m4a" -type f | grep -i "Rattle That Lock"

سوییچ -iname: حساس نبودن دستور find به حروف بزرگ و کوچک
سوییچ -type: اگر بعد از سوییچ type حرف f نوشته شود "فایلها" را در لیست جستجو نمایش میدهد و حرف d برای لیست و جستجو "دایرکتوری" استفاده می شود.
سوییچ -i: حساس نبودن دستور grep به حروف بزرگ و کوچک


ما را از مرگ می ترسانند،
انگار كه ما زنده ايم …
“شاملو”

آفلاین

#2 2020-07-17 19:31:59

mzd245
Moderator
از : تهران
ثبت شده: 2020-03-24
ارسال ها: 21

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

درود، می توان راهی ساده تر را برای این کار پیش گرفت. دستور find بدون نیاز به grep می تواند این کار را برای ما انجام دهد:

find . -iname "*Rattle That Lock*.m4a" -type f

همچنین می توان برای داشتن خروجی تمیزتر و چه بسا کاملا قابل استفاده، stderr را به null منتقل کرد:

find . -iname "*Rattle That Lock*.m4a" -type f 2> /dev/null

علت این کار بیشتر برای جلوگیری از errorهایی است که دستور find به آن برخورد می کند. برای داشتن خروجی واضح و قابل استفاده، این کار نیاز است.
اما اگر حتی بخواهیم از grep استفاده کنیم، نیازی بر pipe کردن نخواهد بود. به دستور زیر نگاه کنید:

find . -iname "*.m4a" -type f -exec grep -i "Rattle That Lock" {} \;

این دستور دقیقا همانند دستور شما، خروجی را به grep داده و محتویات خواسته شده را نمایش می دهد با این تفاوت که grep برای هرفایل اجرا می گردد و این بار خروجی find همانند text به grep داده نمی شود.

آخرین ویرایش توسط mzd245 (2020-07-18 14:01:06)

آفلاین

#3 2020-07-17 23:29:22

FullMetalArcher
Moderator
از : تهران
ثبت شده: 2015-09-16
ارسال ها: 367

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

بسیار عالی ممنون از هر دو بزرگوار


*** I FIGHT FOR USERS ***

آفلاین

پانوشت انجمن

پشتیبانی توسط تیم آرچ لینوکس ایران و نیرو گرفته با FluxBB میزبانی توسط MahanCloud