Це означає, що
( 2 – містить повідомлення про помилки від виконаної команди або сценарію) перенаправляється ( >& ) на stdout ( 1 – вихід команди), а останній перенаправляється на /dev/null (нульовий пристрій). Таким чином ви можете придушити всі повідомлення, які можуть бути видані виконаною командою.16 серпня 2021 р.
Коли ви запускаєте сценарій, який дає вам результат, і якщо ми додаємо > /dev/null 2>&1 у кінці сценарію, ми запит сценарію записати все, що згенеровано сценарієм (як вихід, так і повідомлення про помилку) до /dev/null . Щоб розбити: 2 — це дескриптор стандартної помилки або STDERR.
/dev/null — це спеціальний об’єкт файлової системи, який відкидає все, що в ньому записане. Перенаправлення потоку в нього означає приховування виводу вашої програми. Частина 2>&1 означає "перенаправити потік помилок у вихідний потік", тож коли ви перенаправляєте вихідний потік, потік помилок також перенаправляється.
/dev/null — це віртуальний пристрій, на який ви можете записати що завгодно, і він буде споживати все (по суті, позбутися виводу). Отже, 2> /dev/null означає, що перенаправляє вивід помилки цієї команди в /dev/null. По суті, це означає, що просто позбудьтеся повідомлень про помилки.
2>&1 означає перенаправити stderr (>2) туди, куди перенаправляється stdout (&1). Перш ніж почати, я хочу розглянути основну концепцію файлових дескрипторів.
Це означає, що stderr ( 2 – містить повідомлення про помилки від виконаної команди або сценарію) перенаправляється ( >& ) на stdout ( 1 – вихід команди), а останній перенаправляється на /dev/null (нульовий пристрій ). Таким чином ви можете придушити всі повідомлення, які можуть бути видані виконаною командою.