شما هنوز به سیستم وارد نشده اید.
پیدا کردن تمام فایلهایی که در مسیر جاری پسوند .m4a و نام Rattle That Lock را دارند.
find . -iname "*.m4a" -type f | grep -i "Rattle That Lock"
سوییچ -iname: حساس نبودن دستور find به حروف بزرگ و کوچک
سوییچ -type: اگر بعد از سوییچ type حرف f نوشته شود "فایلها" را در لیست جستجو نمایش میدهد و حرف d برای لیست و جستجو "دایرکتوری" استفاده می شود.
سوییچ -i: حساس نبودن دستور grep به حروف بزرگ و کوچک
ما را از مرگ می ترسانند،
انگار كه ما زنده ايم …
“شاملو”
آفلاین
درود، می توان راهی ساده تر را برای این کار پیش گرفت. دستور 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)
آفلاین
بسیار عالی ممنون از هر دو بزرگوار
*** I FIGHT FOR USERS ***
آفلاین