راز 2>/dev/null در لینوکس

سؤال خیلی خوبی پرسیدی 👌

اون قسمت آخر دستور:

2>/dev/null

🔹 یعنی چی؟

  • در لینوکس، هر برنامه دو خروجی اصلی داره:

    • stdout (شماره 1): خروجی معمولی (نتایج)

    • stderr (شماره 2): پیام‌های خطا

🔹 وقتی می‌نویسی:

2>/dev/null
  • یعنی خروجی خطاها (stderr) رو بفرست به /dev/null

  • /dev/null یک «سیاهچاله» در لینوکسه؛ هر چیزی بریزی توش نابود میشه.

🔹 نتیجه؟

  • خطاهایی مثل Permission denied یا No such file or directory رو مخفی می‌کنه.

  • فقط خروجی اصلی (stdout) بهت نشون داده میشه.


مثلاً اگر دستور رو بزنی بدون این سوییچ:

find / -type f -iname "docker-compose*.yml" -path "*/keycloak/*"

می‌بینی کلی پیام Permission denied میاد.
اما وقتی 2>/dev/null اضافه می‌کنی، فقط مسیر فایل‌های پیدا شده نمایش داده میشه.