TGViewer
DevOps Portal | Linux DevOps Portal | Linux @loose_code · 13.2K subscribers
Post #207 165
🖥 Двойные тире в командах Linux 🐧

Порой опытные админы используют команды в консоли следующим образом:

ssh root@linuxzone.ru --

Что означает это двойное тире? Зачем оно? Давайте разбираться.

Двойное тире означает «флаги командной строки». Оно указывает ssh или другой команде не пытаться анализировать то, что следует после параметров. На словах выглядит не очень, давайте посмотрим на практике!

У меня есть такая команда:

ssh root@linuzone.ru -- command1 --arg1 --arg2

Приведенный выше синтаксис указывает ssh не пытаться анализировать параметры arg1 и arg2 после символа «--». Это гарантирует, что команда command1 примет arg1 и arg2 в качестве аргументов командной строки и выполнится на удаленном сервере.

Короче говоря мы сообщаем ssh - все то, что идет после двойного тире, это не твои параметры и аргументы, анализировать это НЕ НАДО! СТОП! Дальше дело за command1 и его параметрами и аргументами.

Двойное тире обрабатывается не обрабатывается оболочками bash/zsh/csh/sh/fish и т.п. Оно обрабатывается средствами самих программ, но НЕ всех. Например ssh это умеет делать, как и множество других команд и утилит. Рассмотрим другие примеры.

Например, вы не сможете просмотреть файл с именем --file или -f используя команду cat. Проверяем:

cat --file
cat -f

Опа. Ошибка! cat: unrecognized option --file/f. Давайте теперь передадим двойное тире:

cat -- --file
cat -- -f

Ошибка пропала и файл успешно вывелся на экран, ну либо выскочило сообщение cat: --file/f: No such file or directory. Это нормально.

Закрепим:

rm --file = получим ошибку
rm -- '--file' = а вот это сработает

Ну а что бы передать параметры в rm, делаем так:

rm -v -i -- '--file'
rm -f -v -i -- '-f'

Просто, логично, мелодично. Но как я и сказал выше, не все команды умеют работать с двойным тире. Например, команда echo, на все попытки подружить её с двойным тире, просто-напросто провалятся:

/usr/bin/echo -- -n
echo -- --test

выведется это:

-- -n
-- --test

Если материал оказался полезным и интересным, то поставьте лайк. Если остались вопросы, то напиши их в комментариях 💬
  • 👍 7
More from @loose_code
  1. Oct 13, 2026Пока одни облака лежат, другие работают. Бизнесу нужен сайт без простоев и быстрые серверы…
  2. Oct 13, 2026Kubernetes: Client-Side Apply vs Server-Side Apply При выполнении команды kubectl apply по…
  3. Oct 12, 2026DevOps-инструмент недели: Popeye Со временем в Kubernetes-кластерах могут накапливаться не…
  4. Oct 12, 2026Безопасный код ≠ безопасный прод 16 октября на онлайн-трансляции PSD 2026 команда AppSec P…
  5. Oct 8, 2026Интересный и полезный опенсорс-инструмент Как часто приходилось открывать консоль AWS и др…
  6. Oct 8, 2026В этом туториале показано, как разворачивать и масштабировать большие языковые модели (LLM…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →