سارقین
La سارقین دستور عملکرد جالبی را انجام می دهد. ورودی استاندارد را می پذیرد و آن را به یک لیست آرگومان برای یک دستور مشخص تبدیل می کند. با مثال خود، از آن به صورت زیر استفاده می کنیم:
find ~ -type f -name 'foo*' -print | xargs ls -l
find ~ -type f -name 'foo*' -print | xargs ls -l
-rwxr-xr-x 1 me
-rw-r--r-- 1 من
-rwxr-xr-x 1 me
-rw-r--r-- 1 من
me 224 2007-10-29 18:44 /home/me/bin/foo
me 224 2007-10-29 18:44 /home/me/bin/foo
me
me
0 2016-09-19 12:53 /home/me/foo.txt
0 2016-09-19 12:53 /home/me/foo.txt
در اینجا ما خروجی را مشاهده می کنیم پیدا کردن فرمان وارد شده است سارقین که به نوبه خود یک لیست آرگومان برای the می سازد ls دستور داده و سپس آن را اجرا می کند.
توجه داشته باشید: در حالی که تعداد آرگومان هایی که می توان در یک خط فرمان قرار داد بسیار زیاد است، نامحدود نیست. امکان ایجاد دستوراتی وجود دارد که بیش از حد طولانی هستند که پوسته نتواند آنها را بپذیرد. هنگامی که یک خط فرمان از حداکثر طول پشتیبانی شده توسط سیستم بیشتر شود، سارقین دستور مشخص شده را با حداکثر تعداد آرگومان های ممکن اجرا می کند و سپس این فرآیند را تا زمانی که ورودی استاندارد تمام شود تکرار می کند. برای مشاهده حداکثر اندازه خط فرمان، اجرا کنید سارقین با
گزینه --show-limits.
برخورد با نام فایل های خنده دار
سیستمهای یونیکس مانند فضاهای جاسازی شده (و حتی خطوط جدید!) را در نام فایلها مجاز میکنند. این باعث ایجاد مشکل برای برنامه هایی مانند سارقین که لیست های آرگومان را برای برنامه های دیگر می سازد. یک فضای تعبیه شده به عنوان یک جداکننده در نظر گرفته می شود و دستور حاصل هر کلمه جدا شده با فاصله را به عنوان یک آرگومان جداگانه تفسیر می کند. برای غلبه بر این، پیدا کردن و سارقین اجازه استفاده اختیاری از a شخصیت تهی به عنوان جداکننده آرگومان. یک کاراکتر تهی در ASCII به عنوان کاراکتری که با عدد صفر نشان داده می شود تعریف می شود (برخلاف، برای مثال، کاراکتر فاصله، که در ASCII به عنوان کاراکتر نشان داده شده با عدد 32 تعریف می شود). در پیدا کردن دستور عمل را ارائه می دهد -چاپ0، که خروجی تهی جدا شده تولید می کند و سارقین دستور دارد --خالی گزینه ای که ورودی جدا شده تهی را می پذیرد. در اینجا یک مثال است:
پیدا کردن ~ -iname '*.jpg' -print0 | xargs --null ls -l
با استفاده از این تکنیک، میتوانیم اطمینان حاصل کنیم که همه فایلها، حتی آنهایی که حاوی فاصلههای تعبیهشده در نام خود هستند، به درستی مدیریت میشوند.