sponge(1) moreutils sponge(1)

sponge - جذب ورودی استاندارد و نوشتن آن در یک فایل


sed '...' file | grep '...' | sponge [-a] file

sponge ورودی استاندارد را خوانده و آن را در فایل مشخص‌شده می‌نویسد. برخلاف تغییر مسیر در پوسته (shell redirect)، دستور sponge پیش از نوشتن فایل خروجی، تمام ورودی را جذب (در حافظه ذخیره) می‌کند. این ویژگی امکان ساخت خط‌لوله‌هایی را فراهم می‌کند که از یک فایل می‌خوانند و در همان فایل می‌نویسند.

اگر فایل خروجی از قبل وجود داشته باشد، sponge مجوزهای دسترسی (permissions) آن را حفظ می‌کند.

در صورت امکان، sponge با تغییر نام یک فایل موقت به نام فایل مقصد، فایل خروجی را به‌صورت اتمیک (atomic) ایجاد یا به‌روزرسانی می‌کند. (اگر TMPDIR در همان سیستم‌فایل قرار نداشته باشد، انجام این کار ممکن نیست.)

اگر فایل خروجی یک فایل ویژه (special file) یا پیوند نمادین (symlink) باشد، داده‌ها به‌صورت غیراتمیک در آن نوشته خواهند شد.

اگر هیچ فایلی مشخص نشود، sponge داده‌ها را به stdout ارسال می‌کند.

جایگزین کردن فایل با یک فایل جدید که حاوی محتوای اصلی فایل بوده و ورودی استاندارد به انتهای آن الحاق شده است. در صورت امکان، این عمل به‌صورت اتمیک انجام می‌شود.

Colin Watson و Tollef Fog Heen

2006-02-19 moreutils