# Пренасочване и тръбопроводи

Линукс поддържа различни средства за работа с входно-изходните потоци, например:

* Операторът **по-голямо** `>` пренасочва изхода на програмите към файл, вместо да бъдат отпечатани на екрана. Ако файлът вече съществува, съдържанието му ще бъде изтрито и версия с новото съдържание ще бъде запазена.
* Операторът **двойно по-голямо** `>>` пренасочва изхода и го добавя към файл, ако вече съществува.
* Операторът **конвейер** `|` пренасочва изхода на програмата отляво като вход на програмата отдясно.

![12\_pipe.png](https://3813375884-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M50WMlRW6PAqn4gpp-_%2F-M50WNBN2Cvs5pia3MN7%2F-M50WRbY4feEIh_0-a74%2F12.png?generation=1587015975771681\&alt=media)

В горния пример създаваме текстов файл **`file1.txt`**, който съдържа списък с файловете в текущата директория. Забележете, че файлът, който създадохме, също е в списъка. Първо се създава файлa, след това се изпълнява командата и изходът се запазва в него.

След това в същия файл отново добавяме листинга на текущата директория.

В третия пример извеждаме списъка с файлове в текущата директория, пренасочваме го към командата **`head`**, която взима първите три реда, които се пренасочват към командата **`tail`**, която оставя само последния ред.
