Я пытаюсь отправить отчет об ошибке для файла приложения, / usr / bin / file
Но посоветовавшись с человеком и отправив письмо
ОШИБКИ Пожалуйста, сообщайте об ошибках и отправляйте исправления трекеру ошибок по адресу http://bugs.gw.com/ или списку рассылки по адресу ⟨file@mx.gw.com⟩ (посетите http://mx.gw.com/mailman/ listinfo / file первым подписаться).
Заставил меня узнать, что почтовый адрес не существует.
Есть ли другой способ общения с сообществом? Надеюсь, этот вопрос уже является частью этого :)
Итак, вот мой адрес электронной почты:
возможный сбой функции:
--extension
опция ничего не выводит$ file --extension "ab.gif" ab.gif: ???
Было бы полезно иметь возможность легко использовать выходные данные этого, чтобы переименовать файл с его правильным расширением.
что-то вроде файла
--likely_extension
будет выводить только обнаруженное расширение или ошибку, если обнаружение будет слишком низкимвроде так:
$ file --likely_extension "ab.gif" gif
лучше хотя бы
--correct_extension
вариант:$ file --correct_extension "ab.jpg" $ ls ab.gif
Tyvm для этого приложения :)
источник
file --extension
делает работу для некоторых типов файлов (например , .jpg). Может быть, это не «работает» fir .gif, потому что нет других допустимых расширений файлов.file --extension calf.jpg flower.gif
output:calf.jpg: jpeg/jpg/jpe/jfif
иflower.gif:
показаны возможные другие расширения для этих файлов (нет в случае файла GIF). Обратите внимание, чтоfile
требуется только обоснованное предположение о типе файла - для этого используется набор эвристик. Это не обнаружение расширения по названию. Если переименоватьcalf.jpg
вcalf.txt
это еще файл JPEG иfile
говорит мне , что , когда я запускаюfile calf.txt
это также говорит мне , что возможные расширения ,jpeg/jpg/jpe/jfif
когда я бегfile --extension calf.txt
.Ответы:
Вы выполняете правильную процедуру для подачи запроса о проблеме или расширении: если в документации программы указано, как это сделать, следуйте этим инструкциям.
К сожалению, часто случается, что проекты умирают или что инструкции в имеющейся у вас версии более не точны. В этих случаях все становится немного сложнее. Один из возможных общих подходов - сообщить об ошибке в вашем дистрибутиве; хотя успех может быть скорее неудачным ... (я должен отметить, что обычно лучше сообщать об ошибке в дистрибутив, из которого вы получили свой пакет, если вы используете пакет; это особенно верно, если упакованный пакет версия старше текущей версии «upstream», и если вы еще не проверили, присутствует ли проблема там.)
В
file
частности, официальная документация была обновлена, чтобы упомянуть, что трекер ошибок и список рассылки недоступны, а также предоставляет прямой адрес электронной почты для текущего сопровождающего, который вы можете использовать, чтобы связаться с ним.источник
В дополнение к ответу Стивена Китта , вы можете подумать (особенно, если вы сами разработчик, и если программа -
file
в вашем случае - имеет исходный код, который не слишком сложен для понимания), чтобы получить исходный код этой программы (возможно, из вашего распространение) - так как это бесплатное программное обеспечение - и исправление его, а также отправка патча.Если вы потратите время на изучение исходного кода , вы, вероятно, составите лучший отчет об ошибках.
Если вы потратите больше времени на предложение исправления , вы, вероятно, будете восприниматься более серьезно (и ИМХО вы действуете в духе свободного программного обеспечения).
Поэтому используйте свободу, предоставляемую свободным программным обеспечением : изучите его исходный код (свобода № 1) и улучшите его (свобода № 3).
Сегодня очень легко опубликовать (например, на github ) вашу улучшенную версию и поделиться ею (свобода № 2).
Убедитесь, что у вас последняя версия
file
программы. Во многих дистрибутивах это не используется (и, возможно, ошибка в вашем дистрибутиве уже исправлена).Я не уверен, что ваше
--correct_extension
поведение относится к вашейfile
программе (которая запрашивает , а не изменяет ваши данные). Но если это произойдет, то, вероятно, следует записать это по буквам--correct-extension
или--rename-extension
... И как только вы попытаетесь реализовать это, вы можете обнаружить, что существуют странные угловые случаи (как насчет gzip-файла tar, или сжатого исходного файла C, или чего-то, что могло бы нужно несколько расширений файлов).Обратите внимание, что (в отличие от Windows) в Linux и Unix файл на самом деле является индексом (см. Inode (7) ) и может иметь несколько имен (или ни одного) и может открываться несколькими процессами одновременно (читайте о файловых дескрипторах ) - или нет, даже если большинство файлов имеют только одно имя (но смотрите ссылки (2) и stat (2) ). Поскольку один и тот же файл может быть назван,
foo.txt
иbar.gz
не имеет большого смысла придавать важность расширениям файлов. Смотрите также path_resolution (7) .Итак, если вы попытаетесь реализовать свою
correct-extension
идею, вы обнаружите, что ее не так просто реализовать (и даже указать), и что для этого не существует очевидного простого поведения.Возможно, ваша идея не очень хороша и не может быть легко реализована в системах Linux и POSIX (по крайней мере, не во всех случаях).
Поэтому я рекомендую избегать даже отправки запроса на функцию (в его первоначальной форме это потеря времени для вас и для разработчиков
file
). Или же, поработайте над этим, улучшите его спецификации и отправьте патч ... Конечно, вы потратите на это много работы (и я действительно не думаю, что это стоит того).Возможно, также прочитайте какую-нибудь книгу по программированию для Unix (например, старый ALP или что-то более новое; а также intro (2) & syscalls (2) ) и Операционные системы: Три простых компонента .
источник
file
предоставляет информацию и ничего не меняет. Кроме того, представление о том, что «расширение» файла каким-либо образом указывает, какие приложения следует использовать для его открытия, очень ориентировано на Windows. Linux всегда придерживался подхода «магического числа», заключающегося в том, чтобы поставить отличительную сигнатуру в первые несколько байтов файла, а затем позволить имени быть любым. По аналогии, я был файлом в системе Windows, я должен был быть "Monty Harder.human", чтобы кто-нибудь знал, что я, но Linux видит это как часть моего контента, и имя неограниченный.file
сmagic
файлом, так что я не знаю , как «ретро установлены» это. Подход MacOS помещает явный тип файла в метаданные файла («ветвь ресурса»), которые хранятся внутри файла, но в отдельном контейнере.Ты спрашиваешь:
и чтобы ответить на это, важно знать, что не существует такого понятия, как «GNU Linux», как такового. Проект GNU - это совместная работа по разработке свободного программного обеспечения. Часть этого бесплатного программного обеспечения - наряду с большим количеством другого бесплатного программного обеспечения с открытым исходным кодом - собирается другими проектами: совместными, открытыми проектами, такими как Fedora * или Debian, или корпоративными усилиями с различной степенью открытости, или даже отдельными лицами. Эти коллекции называются «дистрибутивами Linux» или «дистрибутивами GNU / Linux» (там есть политические дебаты, в которые я не буду вступать).
В общем, если вас интересует улучшении функций , лучше всего поработать с разработчиком, написавшим программное обеспечение - дистрибутивам предстоит проделать большую работу, чтобы просто собрать различное программное обеспечение и заставить его работать вместе, и обычно предпочел бы, чтобы эти изменения произошли «вверх по течению».
Итак, вы все сделали правильно - вы нашли документированный источник и попытались сообщить об этом.
Однако, похоже, что документированные методы связи для интересующей вас программы не работают. В этом случае у вас есть несколько вариантов:
file
команду, изначально написанную Ианом Дарвином и номинально размещенную по адресу http://www.darwinsys.com/file/ , с указанными вами списками рассылки. Но, как и эти списки рассылки, основной сайт, кажется, не работает. В наше время проверка GitHub является хорошим вторым шагом, и я нашел https://github.com/file/file, в котором говорится, Доступное только для чтения зеркало» хранилища файлов CVS, обновляется каждые полчаса. ПРИМЕЧАНИЕ: не делайте здесь пулл-запросы, не комментируйте какие-либо коммиты, отправляйте их обычным способом в систему отслеживания ошибок или в список рассылки. Это не сразу полезно, но я заметил , что там естьбыли изменения в этом репо на прошлой неделе. Итак, один из возможных следующих шагов - увидеть, кто совершил эти коммиты, и связаться с ними.file
в Fedora, см. Эту страницу . Поскольку они регулярно работают с программным обеспечением, у них могут быть другие способы связаться с вышестоящими. В зависимости от дистрибутива, это лучше всего сделать, заполнив сообщение об ошибке или путем прямого контакта - вам нужно знать индивидуальную культуру. (В Fedora я бы предложил список рассылки devel .)* Я работаю на Fedora. И я работаю в Red Hat.
источник
Это ошибка в вашем дистрибутиве. Если дистрибутив отправляет устаревшие man-страницы, вы должны сообщить об ошибке в пакете, который его предоставил. Если вы используете debian, вы можете использовать такой инструмент, как reportbug, чтобы сделать это проще.
источник
[0] означает первый кадр, который может помочь, если вы случайно используете его на видео, так как в противном случае он использует библиотеки ffmpeg для создания временной копии каждого кадра.
Это работает только для изображений. Я не знаю, как это сделать для общих файлов.
ffmpeg возвращает 'avc1' для случайного файла mp4 (другие файлы mp4 могут возвращать разные строки, и вам все равно придется его анализировать), и я не вижу способа перейти от этого к 'mp4'. 'avc1' нет нигде в / usr / share / mime.ffmpeg, или, что то же самое, ffprobe, перечисляет некоторые форматы файлов, которые использует демультиплексор в начале своего вывода. Для файла mp4 написано
для PNG это говорит
источник