Если пакет недоступен в ваших источниках пакетов, вы не сможете найти никакой информации через локальные средства. Получить информацию о судьбе пакета в Debian можно на сайте :https://packages.debian.org/package-name
, https://bugs.debian.org/package-name
, https://packages.qa.debian.org/First letter of name/package-name
.
[На странице пакета вы можете увидеть, что roxterm
присутствует в wheezy и jessie, но не в buster, и его больше нет в нестабильном. Также есть ссылка на страницу QA.
На странице QA вы найдете информацию о том, почему пакет был автоматически удален из тестирования и как пакет может быть полностью удален из Debian..
Компания Roxterm была удалена из списка нестабильных версий в июне 2016 года по причине
ROM¹; Upstream discontinued; has RC bug
Если вы не хотите брать на себя обслуживание Roxterm, вам лучше найти альтернативу.
Подробности в Ошибка #827768 .
file -- *
Здесь будет код на языке оболочки Unix.Язык оболочки Unix, специализирующийся на поиске и запуске команд в новых процессах, передаче им аргументов и переменных среды и подключении к их стандартным потокам ввода/вывода/ошибок.
Этот язык находится в зачаточном состоянии, но имеет несколько причудливых особенностей.
Эта строка в примере простой команды в грамматике языка оболочки.
Пробелы используются для разделения слов. Здесь file
, --
и *
.
Первое слово, здесь file
, принимается за имя запускаемой команды. Оболочка будет искать путь к этой команде, используя специальную переменную $PATH
. Я мог бы быть чем-то вроде /usr/bin/file
.
Слово *
содержит подстановочный знак оболочки (*
), поэтому оно запускает специальную функцию оболочек, которая называется генерацией имени файла или подстановкой(POSIX называет это расширение имени пути). Оболочка заменит *
списком имен файлов, соответствующих этому шаблону. *
— это шаблон, который соответствует любому количеству символов. Таким образом, оболочка расширит все имена всех файлов в текущем каталоге (за исключением скрытых ), отсортированных по алфавиту.
Затем оболочка разветвит дочерний процесс, и в этом дочернем процессе будет выполняться /usr/bin/file
с file
, --
и этим списком имен файлов (, поэтому в вашем случае -file04
, -file05
... )в качестве аргументов.
Команда file
является отдельной от sh
командой. В то время как работа sh
заключается в анализе командной строки, работа file
заключается в том, чтобы попытаться определить характер содержимого файла.
При запуске, как и большинство команд, file
будет анализировать свои аргументы. Первый file
просто говорит ему, как он называется, как он должен обращаться к себе, как в сообщениях об ошибках. Следующие аргументы говорят ему, что делать.
Как и в большинстве команд, аргументы, начинающиеся с -
, считаются опциями. Здесь первый аргумент — --
. Технически,это не опция, это маркер конца -из -. Он сообщает file
, что с этого момента следует прекратить обработку опций и что следующие аргументы не должны приниматься как опции, даже если они начинаются с -
.
Что здесь хорошо, так как следующий аргумент, -file01
, на самом деле не предназначался для использования в качестве опции, а был именем файла для file
, чтобы рассказать о характере его содержимого.
Вам нужно, чтобы --
при передаче не -аргументов опции, которые начинаются с -
(+
, также могли возникнуть проблемы с некоторыми командами )или могут начинаться с -
/ +
, например, когда они результат некоторого расширения, как при использовании cmd -- "$arg"
, cmd -- *
, cmd -- "${args[@]}"
, cmd -- $(cmd2)
...
Невыполнение этого требования может привести к ошибкам и уязвимостям в системе безопасности.
Для аргументов, которые должны быть путями к файлам, другой подход заключается в добавлении префикса к аргументам, которые не начинаются с /
, с./
(./-foo/bar
и -foo/bar
как к путям к одному и тому же файлу, но только последний может быть взят как вариант ). Использование этого подхода может быть необходимо для команд, которые не поддерживают --
в качестве конца -маркера опции -, а также могут обойти другие проблемы, такие как -
, интерпретируемое как значение stdin вместо файла. вызывается -
, даже если передается после --
или awk
обработки аргументов, содержащих =
.
Большинство консольных утилит GNU не могут работать с файлами, начинающимися с дефиса, если вы не передадите им --
, например.
$ cat -file1
производит
cat: invalid option -- 'f'
Try 'cat --help' for more information.
Вот почему в вашем случае требуется --
, так как он указывает утилите file
прекратить обработку параметров и обрабатывать остальные аргументы как файлы.
Интересно, можно ли как-то использовать эту особенность, потому что она выглядит жизнеспособной. Отправьте человеку несколько файлов, например. tar и попросите их выполнить какое-либо действие, например. command *
. Файлы, начинающиеся с тире, будут интерпретироваться как варианты, если пользователь не проявит должной осмотрительности, а большинство этого не делает. Например, я не помню, когда в последний раз использовал --
, потому что у меня нет ни одного файла, начинающегося с дефиса.