خب این تاپیک ایجاد شده که داخلش دستورات مفید پوسته رو با توضیحات کوتاه و به همراه مثال معرفی کنیم :)
برای شروع من از xargs میگم.
دستور: xargs
برای اجرای یک دستور با آرگومانهایی که از ورودی استاندارد یا خروجی دستور دیگر گرفته میشوند استفاده میشود؛ مخصوصاً زمانی که دادهها زیاد یا چندخطی باشند.
cat list.txt | xargs rm
find . -name "*.log" | xargs gzip
echo "file1 file2 file3" | xargs -n1 echo "Processing:"
find /var/log -type f | xargs -I{} cp {} /backup/logs/
دستور xargs کمک میکند خروجیهایی که بهصورت خطی یا چندتایی هستند، به صورت منظم به دستورات دیگر پاس داده شوند تا مشکل طول زیاد آرگومانها یا کار با فایلهای زیاد حل شود.
4 Likes
یکی از دستورات مفیدی که به نظرم خوبه بهش اشاره بشه دستور tee هستش.
دستور tee خروجی یک دستور رو همزمان روی صفحه (stdout) نمایش میده و در یک یا چند فایل هم ذخیره میکنه.
یعنی یه جورایی دوشاخهی خروجیه 
کجا کاربرد داره؟
مثلا وقتی ذخیره همزمان خروجی بدون از دست دادن نمایش در ترمینال نیازه
ls -lh /etc | tee etc_list.txt
خروجی لیست etc/ روی صفحه نشون داده میشه و در فایل etc_list.txt ذخیره میشه.
یا افزودن به فایل (append mode) بخواد اتفاق بیوفته
dmesg | tee -a logs.txt
خروجی دستور dmesg به آخر فایل logs.txt اضافه میشه بدون اینکه اطلاعات قبلی پاک بشن.
یا تو نوشتن همزمان در چند فایل خیلی کمک کننده است
echo "Backup started at $(date)" | tee log1.txt log2.txt
و برای استفاده در pipeline برای ثبت مرحلهای خروجی هم کاربرد داره
curl -s https://example.com | tee response.html | grep keyword
خروجی هم ذخیره میشه و هم فیلتر میشه
نکته جالبی که داره sudo با tee خیلی خوب جفت میشه
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
چون sudo فقط روی echo اعمال نمیشه، با tee میتونیم به فایلهای سیستمی هم بنویسیم بدون نیاز به ادیتور
2 Likes