Найти в Дзене
takoedelo

Символы >, >>, &, &&, и || в Linux

Оглавление

Символы >, >>, &, && и ||/ чрезвычайно полезны при работе в командной строке Linux.

Некоторые из “трюков” в Linux зависят от использования нескольких специальных символов. В этой статье рассматривается ряд из них и показано, как они работают.

Использование > и >>

Использование символов > и >> будет иметь похожие, но разные эффекты, и оба они зависят от того, как вы используете их в команде. Символ > может использоваться для прямого вывода в файл. Например, эти команды поместят указанный текст в файл. Однако, если файл существует, все прежнее содержимое будет перезаписано. Обратите внимание, что в файле осталось только одно "hello".

-2

С другой стороны, использование >> добавит текст, указанный в конце файла. Если файл не существует, команда создаст его.

-3

Приведенные ниже команды очистят файл от его содержимого. Подобные команды часто используются для периодической очистки файлов. без изменения прав доступа к файлам или владельца.

Обе команды, показанные ниже, имеют одинаковый эффект, поэтому многие пользователи 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 в приведенном выше примере явно прошла успешно.

Символы || имеют противоположный эффект. Если первая команда выполнена успешно, вторая не будет выполнена. Другими словами, будет выполняться только одна из команд. Вы можете думать об этом как о чем–то вроде оператора “if” - если не первая команда, то вторая.

В приведенном ниже примере каталог scripts не существовал, поэтому была запущена команда mkdir.

$ [ -d scripts ] || mkdir scripts
$ ls -ld scripts
drwxrwxr-x 2 shs shs 4096 Jul 8 12:24 scripts

Что такое зомби-процессы в Linux и как их уничтожить

5 основных инструментов для запоминания команд Linux

Как импортировать данные с веб-сайтов в Excel

ISO vs. BIN vs. CUE vs. IMG:форматы образов дисков

USB4 по сравнению USB 3: В чем разница?

Как вводить символы с ударением в Linux

Как управлять временем в Linux

Ставьте лайк .Смотрите другие наши статьи,подписывайтесь на канал чтобы не пропустить интересное.