труби проти переадресації


23

Я давно використовую труби та переадресації і просто зрозумів, що не знаю точно, чим вони відрізняються. Я просто знаю, що якщо ви хочете зберегти вихід у файлі, то ви використовуєте>. Інакше більшу частину часу ви просто використовуєте |. Чи може хтось пояснити різницю між трубами та переадресаціями?


Відповіді:


25

Обидва роблять одне і те ж основне; вони перенаправляють дескриптор файлу виконуваного процесу. Різниця полягає в тому, як. Труба з'єднує stdout одного процесу з stdin іншого, тоді як перенаправлення перенаправляє з / в файл ( >з stdout у файл, <з файлу в stdin).


1
Різновидність розмиття в Linux та інших системах, які є /dev/fd. Наприклад, якщо запустити echo foo > >(somecommand), він розшириться до echo foo > /dev/fd/3. Це все ж перенаправлення, але до процесу.
користувач1686
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.