ВУЗ:
Составители:
177
В этом примере команда ls, вместо того, чтобы вывести список
файлов на экран, записала его в файл с именем «filelist.txt». При этом,
если файл с таким именем не существовал, он будет создан, в противном
случае его старое содержимое будет потеряно. Существует и другая
возможность перенаправления вывода, когда новые выходные данные
будут дописаны в конец существующего файла. Для этого используется
операция «>>». В следующем примере текущие дата и время будут до-
писаны в конец файла с именем «dates.txt»:
$ date >> dates.txt
Сообщения об ошибках выводятся в стандартный поток ошибок.
Например, пусть выполняется попытка получить список файлов в ката-
логе без соответствующих прав доступа:
$ ls -l /home/ftp/bin/
ls: /home/ftp/bin/: Access denied
В данном случае команда ls вывела сообщение в поток стандартной
ошибки. Чтобы перенаправить его в указанный файл, можно использо-
вать операции «2>» и «2>>» (по аналогии с «>» и «>>», только цифра 2
говорит о том, что нужно перенаправить поток ошибок), например:
$ ls -l /home/ftp/bin/ 2> last-error.txt
Операции перенаправления ввода-вывода можно комбинировать,
например:
$ wc < /etc/passwd 2>> errors.txt > result.txt
Существует другой полезный способ перенаправления ввода-
вывода – конвейеры команд. Операция «|» (знак вертикальной черты)
позволяет перенаправить стандартный поток вывода одной команды на
стандартный входной поток другой команды:
$ ls -l /etc | less
В этом примере команда ls выводит длинный список файлов в ката-
логе /etc, эти данные попадают на вход программы less, которая позво-
ляет пролистывать текст с помощью клавиш управления курсором. Так
осуществляется «объединение» двух независимых команд в один «кон-
вейер».
Рассмотрим более сложный пример формирования конвейера ко-
манд. Пусть нам требуется получить в файле «bash-users.txt» отсортиро-
Страницы
- « первая
- ‹ предыдущая
- …
- 175
- 176
- 177
- 178
- 179
- …
- следующая ›
- последняя »
