ProIT: медіа для профі в IT
2 хв

Сила символів >, >>, &, && та || на Linux

author avatar ProIT NEWS

Символи >, >>, &, && та || надзвичайно корисні, коли ви працюєте в командному рядку Linux.

Деякі з найзручніших «трюків» у Linux залежать від використання кількох спеціальних символів. Network World розглядає деякі з них і показує, як вони працюють.

Використання > і >>

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

Символ > можна використовувати для направлення виведення у файл. Наприклад, ці команди помістять вказаний текст у файл. Однак якщо файл існує, будь-який попередній вміст буде перезаписано. Зверніть увагу, що у файлі залишилося лише одне «привіт».

$ echo hello > world
$ echo hello > world
$ cat world
hello

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

$ echo "My Report" > report
$ date >> report
$ cat report
My Report
Sat Jul  8 11:49:48 AM EDT 2023

Наведені нижче команди очистять файл від його вмісту. Такі команди часто використовуються для періодичного очищення файлів без зміни дозволів на файл або власності.

Обидві команди, наведені нижче, мають однаковий ефект, але багато користувачів Linux надають перевагу другій.

$ cat /dev/null > bigfile
$ > bigfile

Ось приклад:

$ ls -l bigfile
-rw-rw-r-- 1 shs shs 1309432546 Jul  8 11:51 bigfile
$ > bigfile
$ ls -l bigfile
-rw-rw-r-- 1 shs shs 0 Jul  8 11:51 bigfile

Використання &

Символ & використовується для виконання команди у фоновому режимі, що дає змогу користувачу переходити до інших завдань, поки команда виконується до кінця.

Ось приклад його використання:

$ bigjob &

Ви можете перевірити фонові завдання за допомогою команди jobs.

$ jobs
[1]+  Running                 bigjob &
$ fg %1
bigjob

Також можна відправити запущене завдання у фоновий режим, використовуючи ^z, а потім команду bg.

$ bigjob
^Z
[1]+  Stopped                 bigjob
$ bg
[1]+ bigjob &

Крім того, ви можете повернути фонові завдання на передній план за допомогою команди fg.

Ось приклад:

$ bigjob &
[1] 4092
$ jobs
[1]+  Running                 bigjob &
$ fg %1
bigjob

Використання && та ||

&& та || відіграють особливі ролі, коли команди залежать від успіху чи невдачі попередніх команд.

Символи && забезпечать виконання команди праворуч, якщо команда ліворуч буде успішно виконана, і гарантують, що друга команда не буде виконана, якщо перша команда не вдасться.

Ось приклад:

$ ping 192.168.0.1 && echo router is reachable
router is reachable

Команда ping у наведеному вище прикладі була явно успішною.

|| символи мають протилежний ефект. Якщо перша команда виконана успішно, друга не буде виконана. Іншими словами, буде виконано лише одну з команд. Ви можете сприймати це як щось на зразок оператора «якщо» – якщо не перша команда, то друга.

У наведеному нижче прикладі каталог сценаріїв не існував, тому було запущено команду mkdir.

$ [ -d scripts ] || mkdir scripts
$ ls -ld scripts
drwxrwxr-x 2 shs shs 4096 Jul  8 12:24 scripts
Приєднатися до company logo
Продовжуючи, ти погоджуєшся з умовами Публічної оферти та Політикою конфіденційності.