SitePages

Thursday, May 4, 2023

Оператори >, >> та |

Якось я блукав інтернетом в пошуках мануалів, та натрапив на цікаву команду:

echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php


Я вирішив зробити дослідження, як працює ця команда, і хоч сам читав не один раз в підручниках про оператори, вірішив написати невеличку статтю про оператори.

Оператори >, >> та | є дуже корисними в Bash для роботи з файлами та процесами. В цій статті ми розглянемо ці оператори та їх використання з прикладами.

Оператор >

Оператор > використовується для перенаправлення виведення з команди в файл. Якщо файл існує, він буде перезаписаний з новим вмістом. Якщо файл не існує, то він буде створений.

Наприклад, щоб вивести результат команди `ls` в файл `filelist.txt`, виконайте таку команду:

```
ls > filelist.txt
```

Якщо файл `filelist.txt` вже існує, то вміст файлу буде замінений новим вмістом.

Оператор >>

Оператор >> використовується для додавання вмісту до кінця файлу. Якщо файл не існує, він буде створений.

Наприклад, щоб додати результат команди `ls` до кінця файлу `filelist.txt`, виконайте таку команду:

```
ls >> filelist.txt
```

Якщо файл `filelist.txt` вже існує, то новий вміст буде додано в кінець файлу, не заміняючи старий вміст.

Оператор |

Оператор | (pipe) використовується для передачі виведення однієї команди як вхід до іншої команди. Це дозволяє зберігати результати виконання однієї команди та передавати їх як вхід до іншої команди для подальшої обробки.

Наприклад, щоб вивести список процесів, які виконуються у системі, та відфільтрувати їх за ім'ям процесу, використовуйте команду:

```
ps aux | grep firefox
```

У цьому прикладі виведення команди `ps aux` передається до команди `grep firefox`, яка фільтрує список процесів, щоб знайти тільки ті, які містять слово "firefox".

Оператори >, >> та | - це потужні інструменти, які дозволяють працювати з файлами та процессами.

Ось команда bash, що створить файл з назвою `file.txt` та введе текст `hello world` в цей файл:

```
echo "hello world" > file.txt
```

Ця команда використовує команду `echo` для виводу тексту на екран, а потім перенаправляє вивід до файлу з використанням оператора перенаправлення `>`. Якщо файл не існує, він буде створений, інакше вміст файлу буде замінений на новий текст.

Для того, щоб додати рядок "hello world" в кінець існуючого текстового файлу, можна скористатись командою `echo` разом із опцією `>>`, яка додає вивід команди в кінець файлу, або з опцією `tee -a`, яка додає вивід команди і на екран, і в кінець файлу. Наприклад, так:

```bash
echo "hello world" >> file.txt
```

або

```bash
echo "hello world" | tee -a file.txt
```

У цих командах `file.txt` - це ім'я існуючого текстового файлу, в який потрібно додати рядок "hello world". При виконанні команди в терміналі з'явиться повідомлення "hello world", а також воно буде додано в кінець файлу `file.txt`.