<Попередній | зміст | Наступна>
Переспрямування стандартного виводу та стандартної помилки в один файл
Існують випадки, коли ми можемо захотіти записати весь вихід команди в один файл. Для цього ми повинні одночасно перенаправити стандартний вихід і стандартну помилку. Це можна зробити двома способами. По-перше, традиційний спосіб, який працює зі старими версіями оболонки:
[me@linuxbox ~]$ ls -l /bin/usr > ls-output.txt 2>&1
[me@linuxbox ~]$ ls -l /bin/usr > ls-output.txt 2>&1
Використовуючи цей метод, ми виконуємо два перенаправлення. Спочатку ми перенаправляємо стандартний вихід у файл ls-вихід.txt а потім ми перенаправляємо дескриптор файлу 2 (стандартна помилка) на дескриптор файлу XNUMX (стандартний вихід), використовуючи позначення 2> & 1.
Зверніть увагу, що порядок перенаправлень є важливим. Перенаправлення стандартної помилки має відбуватися завжди після перенаправлення стандартного виводу або він не працює. У наведеному вище прикладі
>ls-output.txt 2>&1
перенаправляє стандартну помилку до файлу ls-вихід.txt, але якщо порядок змінено на
2>&1 >ls-output.txt
стандартна помилка спрямована на екран.
Останні версії бити надайте другий, більш спрощений метод виконання цього
Стандартна помилка переспрямування
комбіноване перенаправлення:
[me@linuxbox ~]$ ls -l /bin/usr &> ls-output.txt
[me@linuxbox ~]$ ls -l /bin/usr &> ls-output.txt
У цьому прикладі ми використовуємо єдине позначення &> щоб перенаправити стандартний вихід і стандартну помилку до файлу ls-вихід.txt. Ви також можете додати стандартний вихід і стандартні потоки помилок до одного файлу так:
[me@linuxbox ~]$ ls -l /bin/usr &>> ls-output.txt
[me@linuxbox ~]$ ls -l /bin/usr &>> ls-output.txt