Лекции.Орг

Поиск:


Устал с поисками информации? Мы тебе поможем!

Doc1 doc2 docs




Ці ж універсальні символи допускаються при використанні команди rm для одночасного видалення декількох файлів.

5.1.2 Стандартний ввід, стандартний вивід і переадресація потоків

Всі звичайні файли в ОС Linux (а також вхідна і вихідна інформація команд) мають однакову структуру - байтовий потік. Вхідні дані для команди направляються в потік даних, що називається стандартним вводом stdin, а вся вихідна інформація направляється в потік даних, що називається стандартним виводом stdout.

Існує ще один стандартний потік – потік повідомлень про помилки stderr (по суті – другий вихідний потік). Оскільки стандартний ввід і стандартний вивід мають таку ж структуру, як і файли, вони вільно сполучаються з останніми. За допомогою операторів переадресації, стандартний ввід і стандартний вивід можна перенаправляти з файлу і в файл. За допомогою оператора переадресації ">" стандартний вивід можна переадресувати з команди в файл. За допомогою оператора переадресації "<" можна переадресувати стандартний ввід так, щоб дані вводились з існуючого файлу. Оператор ">>" служить для добавлення вмісту стандартного виводу до існуючого файлу.

Наприклад, вам необхідно сформувати файл, що містить лістинг поточного каталогу. Це можна зробити, направивши стандартний вивід команди ls в файл, а не на екран:

$ ls –larR > list2


Результатом виконання даної команди буде виведення списку файлів у поточному каталозі із зазначеними опціями але не на екран терміналу, а у файл list2 . Якщо цей файл вже існує, то він буде переписаний наново. У разі необхідності дозаписати файл треба виконати команду:

$ ls –larR >> list2

За допомогою оператора переадресації створюється файл list2, він заповнюється даними з команди ls –larR. Однак, сама переадресація організується до того, як почнуть надходити дані зі стандартного виводу. Якщо файл вже існує, він буде знищений і замінений новим файлом під тим же ім’ям. Команда, що генерує вихідні дані, виконується тільки після створення файлу переадресації.

Якщо користувач спробує використати один і той самий файл в якості вхідного і вихідного потока, виникне помилка. Оскільки переадресація виконується перед виконанням команди, вхідний файл буде знищено і замінено порожнім файлом з тим же ім’ям, тобто виникне втрата даних. Коли команда почне виконуватися, вона знайде порожній вхідний файл, і, як наслідок, користувач не отримає бажаного результату. Прикладом такої помилки може бути наступний рядок:

$ cat myletter > myletter

Ви можете додати стандартний вивід команди до вже існуючого файлу, додавши дані потоку в кінець файлу. В наступному прикладі файли myletter і oldletter по черзі дописуються в кінець файлу all_let:

$ cat myletter >> all_let

$ cat oldletter >> all_let

Поєднавши команду cat з оператором переадресації, ви отримаєте легкий спосіб збереження інформації, що вводиться, в файл:

$ cat > mydat






Дата добавления: 2015-09-20; Мы поможем в написании ваших работ!; просмотров: 352 | Нарушение авторских прав | Изречения для студентов


Читайте также:

Поиск на сайте:

Рекомендуемый контект:





© 2015-2021 lektsii.org - Контакты - Последнее добавление

Ген: 0.002 с.