Подтвердить что ты не робот

Какая магия "-" (тире) в параметрах командной строки?

Примеры:

  • Создайте образ ISO и сожгите его непосредственно на компакт-диске.

    mkisofs -V Photos -r /home/vivek/photos | cdrecord -v dev=/dev/dvdrw -

  • Переход в предыдущий каталог.

    cd -

  • Слушайте порт 12345 и отправленные на него данные.

    nc -l -p 12345 | tar xvzf -

Какова цель черточки и как ее использовать?

4b9b3361

Ответ 1

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

Он позволяет вам указывать стандартный ввод или вывод, а не фактическое имя файла.

Это случай для вашего первого и третьего примера. Например, команда cdrecord принимает стандартный ввод (поток изображений ISO, созданный mkisofs), и записывая его непосредственно на /dev/dvdrw.

С помощью команды cd каждый раз, когда вы меняете каталог, он сохраняет каталог, из которого вы пришли. Если вы выполняете cd со специальным - "именем каталога", он использует этот запомненный каталог вместо реального. Вы можете легко переключаться между двумя каталогами довольно быстро, используя это.

Другие команды могут рассматривать - как другое специальное значение.

Ответ 2

Это не волшебство. Некоторые команды интерпретируют - как пользователя, желающего читать из stdin или write to stdout; в оболочке нет ничего особенного.

Ответ 4

Магия находится в соглашении. На протяжении тысячелетий люди использовали "-", чтобы отличать варианты от аргументов и использовали "-" в имени файла, чтобы обозначать либо stdin, либо stdout, если это необходимо. Не стоит недооценивать силу конвенции!

Ответ 5

- означает то, что каждая команда хочет иметь в виду. Существует несколько общих конвенций, и вы видели примеры большинства из них в других ответах, но ни один из них не является 100% универсальным.

Нет ничего волшебного в отношении символа - в отношении оболочки (за исключением того, что сама оболочка и некоторые ее встроенные команды, такие как cd и echo, используют ее обычными способами), Некоторые символы, такие как \, ' и ", являются "магическими", со специальными значениями, где бы они ни появлялись. Это "метасимволы оболочки". - не так.

Чтобы узнать, как используется данная команда -, прочитайте документацию для этой команды.

Ответ 6

Это означает использовать стандартный поток ввода программы.

В случае cd это означает что-то другое: перейти на предыдущий рабочий каталог.