Bash вообще не интерпретирует аргумент -
. Это просто соглашение, реализуемое многими программами.
Вы обычно видите это, когда программа обычно работает с файлами, поэтому им нужна какая-то текстовая строка, которая вряд ли будет именем файла для использования, когда вы хотите, чтобы она работала с stdin
/ stdout
вместо этого.
Маловероятно, что вы столкнетесь с системой с файлом, специально названным -
, потому что это стандартный символ параметра в Unix. Но поскольку на самом деле разрешено называть файл -
- или, в более общем смысле, любой файл , начинающийся с -
- многие программы, которые понимают -
аргумент также понимает параметр -
, означающий «остановить параметры обработки». Это позволяет вам делать такие вещи, как удаление файла с именем -
:
$ rm -- -