Почему sort -k5nr не является синтаксической ошибкой?

$ ls -l | sort -k 5 -n -r $ ls -l | sort -k5nr 

Я узнаю, что эти две команды генерируют один и тот же вывод.
Но я не понимаю, почему я могу комбинировать 5 с n ?
Почему не синтаксическая ошибка?

редактировать:

 $ ls -l | cut -d: -n -f 2 $ ls -l | cut -d:nf2 cut: the delimiter must be a single character Try `cut --help' for more information. 

Почему cut дозы не ведет себя как sort ?

One Solution collect form web for “Почему sort -k5nr не является синтаксической ошибкой?”

Потому что sort выполняется таким образом, что она анализирует их так, как вы ожидаете.

См. Также здесь :

  • Иногда параметры и их аргументы выполняются вместе, иногда разделяются пробелами, а иногда и символом, обычно: или =. Таким образом, «Prog -fFilename», «Prog -f Filename», «Prog -f: Filename», «Prog -f = Filename».
  • Некоторые программы позволяют комбинировать односимвольные параметры; Другие – нет. Переключатель «-fA» может означать то же самое, что «-f -A», или он может быть неправильным, или даже может быть действительным, но другим параметром.

Это похоже на комбинацию обоих (работает без пробелов и комбинации односимвольных опций).


Это просто разные программы, анализ аргументов которых осуществляется по-разному.

В coreutils 8.13 сравните следующее:

  • src/sort.c строка 4315, вызывая специальную функцию синтаксического анализа parse_field_count , которая возвращается с первым недопустимым символом (т. parse_field_count завершения значения числа и запускается следующий параметр): Вот почему sort может обрабатывать ваши аргументы.
  • src/cut.c , строка 803 ff., Просто используя регулярное поведение getopt для интерпретации всего до следующего пробела как параметра текущей опции.
  • Почему shell игнорирует кавычки в аргументах, переданных ей через переменные?
  • Как получить звуковой сигнал?
  • Не удается выполнить ping в Bash на Windows
  • Tmux вызывает проблемы с Bash up-arrow
  • Написание сценариев оболочки, которые будут выполняться на любой оболочке (используя несколько строк shebang?)
  • Является ли это специфичным для bash методом вызова скрипта: VARIABLE = value bash somescript
  • Bash - обработка вывода по одной строке за раз
  • Постоянно сохранять файл журнала в OSX?
  • Повторное использование текста в команде bash
  • Команды npm не работают на WSL с zsh
  • Потеря истории Bash при использовании histappend
  • Почему иногда я получаю 'sh: $' \ 302 \ 211 ... ': command not found' в xterm / sh?
  • Давайте будем гением компьютера.