Небольшое обновление для ответа Lynob: я столкнулся с той же проблемой и обнаружил, что blueman-applet
, по крайней мере, в версии 1.99, имеет ту же ошибку, но проблемный код находится в /usr/lib/python2.7/dist-packages/blueman/main/KillSwitchNG.py
.
Строки 87-88:
флаги |= os.O_NONBLOCK
self.fd = os.open("/dev/rfkill", флаги)
...
Чтобы решить проблему, бит binary mode
также должен быть установлен в flags
путем добавления этой строки перед вызовом open(...)
:
флаги |= os.O_BINARY
Поскольку find
является утилитой, стандартизированной POSIX , а git
— нет. Таким образом, разработчики git
могут свободно реализовывать его опции/операнды любым способом, который они считают нужным.
Утилиты POSIX используют -
для ввода параметров, а реализации этих утилит (, такие как ls
и т. д. ), всегда реализуют их так, как предписывает стандарт POSIX. Кроме того, для некоторых утилит существует дополнительный вариант «длинной опции» некоторых стандартных опций вместе с расширениями, которые даже не упоминаются в POSIX.
В случае find
это не строго «опции», а «операнды» (, также называемые «первичными» или «предикатами» в зависимости от того, какое руководство вы читаете )в форме « выражения операнда» и воздействовать на имя пути, которое find
обрабатывает в данный момент. Реальные варианты стандарта find
— это просто-H
(разыменование символических ссылок )и-L
(не разыменование символических ссылок ). Вы заметите разницу в руководстве, где опции и операнды разделены на отдельные разделы.
Также для git
это не «истинная опция», если она указана в командной строке так, как это делается в вопросе, а операнды. Параметры всегда указываются перед параметрами, отличными от -, и любые аргументы командной строки после последнего параметра являются просто «операндами». Однако они вполне могут быть преобразованы в истинные параметры для команды sub -, которая git
вызывается позже.