перенаправление_потоков_ввода_вывода

Перенаправление потоков ввода/вывода

Файловые дескрипторы

Номер   Название    Оператор
0       STDIN         <
1       STDOUT        >

Оператор >

$ ps ax > ps.txt

$ > ps.txt ps ax

$ less ps.txt

$ grep init ps.txt

Оператор <

$ grep init < ps.txt

$ < ps.txt grep init

Оператор |

$ ps ax > ps.txt
$ grep init < ps.txt
или
$ ps ax | grep init

$ du -s /usr/share/* | sort -n | tail -n 1

FreeBSD
$ tail -f /var/log/messages | grep auth
Linux
$ tail -f /var/log/auth.log | grep FAILED

$ ls -l /bin | sort -n -k5 | tail -n5 | cut -c48-60

Команда tee

$ find /usr/share -name '*.html' | tee find_res.txt

$ ls /bin /b1n 2>&1 | tee full_log.txt

Команда cat

$ cat /etc/passwd

При отсутствии аргументов читает с STDIN, пишет на STDOUT

$ cat

$ cat < /etc/passwd

$ cat > f.txt

$ cat < f.txt > f2.txt

Оператор >>

$ cat >> f2.txt

Оператор <<

$ cat > f2.txt <<FINISH

Файловый дескриптор номер 2 - STDERR

$ ls fhgfdgbdfhsd

$ ls errfilename > ls_res.txt

$ ls errfilename 2> ls_err.txt

$ ls /bin /b1n 2>&1 | tee full_log.txt

$ ls /bin /errdirname > ls.txt 2>&1

$ ls /sdfgsdfgsd > /dev/null 2>&1

$ ls /sdfgsdfgsd 2>/dev/null >&2

$ ls /sdfgsdfgsd &>/dev/null

Перенаправление ввода/вывода между процессами, работающими на разных системах

# cd /

# tar -c -f etc.tar etc/

# tar -c -f - etc/ | cat > etc.tar

# tar -c -f - etc/ | rsh -l userX backup 'cat > etc.tar'

# tar -c -f - etc/ | ssh -l userX backup 'cat > etc.tar'

# tar -c -f - etc/ | ssh userX@backup 'cat > etc.tar'

Именованные каналы

В файлах grep1.txt и grep2.txt не должно быть пустых строк в конце

$ cat grep1.txt
rtf$
doc$
$ cat grep2.txt
gz$
$ mkfifo findresult.fifo

$ find /usr/share/ -type f > findresult.fifo &

$ cat grep*.txt | grep -f - findresult.fifo

$ rm findresult.fifo
перенаправление_потоков_ввода_вывода.txt · Last modified: 2019/06/26 14:00 by val