Есть ли хоть одна зарегистрированная версия UNIX 2003 года, которая на данный момент не может выполнить rm -- -foo?

Есть ли хоть одна зарегистрированная версия UNIX 2003 года, которая на данный момент не может выполнить rm -- -foo?

Я пытаюсь развеять это.неопределенностьУ меня есть об использованиидвойное тире(два дефиса, --) в качестве разделителя в конце опций (в отличие отдлинный префикс опции). Возможно, возникла некоторая путаница, когда кто-то прочитал, что длинные опционы — этоГНУсоглашение и длинные варианты начинаются с --. Но это просто не связано сконец вариантаразделитель.

Использование Which полностью соответствуетIEEE Std 1003.1, 2013 Руководство по синтаксису утилит 10:

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

Итак, можно посмотреть на rmman-страницахOSX(илиFreeBSD),ЭКС,СолярисиHPUX- известные зарегистрированные Unix-системы UNIX '03:

  • OSX, AIX и Solaris 1 ссылаются на --разделитель дословно вчеловек рм
  • HPUX не обсуждает это вчеловек рмно есть и другие команды, которые допускают указанный разделитель (например,touch)

Есть ли хоть одинЮНИКС 03 зарегистрированный продукткоторые не могут сделать rm -- -fooсегодня? Это Solaris... HPUX? Они могут сделать это, даже если они не документируют это? Можем ли мы обобщить это для всех команд на этих платформах на данный момент?


1. В последнем примечании руководства Solaris 11 говорится: Если в одной командной строке встречаются символы - - и -, второй интерпретируется как файл.И между первыми двумя дефисами есть пробел. Это просто дефис или что-то, что начинается с дефиса в этом контексте, что будет интерпретироваться как файл?

решение1

Из Соляриса 10:

~ touch testfile
~ rm -- testfile
~ ls testfile
testfile: No such file or directory
~ touch testfile
~ rm -- -f testfile
-f: No such file or directory
~ ls testfile
testfile: No such file or directory
~ rm - - -f testfile
-: No such file or directory
-f: No such file or directory
testfile: No such file or directory
~

Итак, отвечая на ваш вопрос, в Solaris 10, если второй экземпляр начинается с дефиса, он рассматривается как файл.

Связанный контент