Ich versuche, einen Fehlerbericht für die App-Datei / usr / bin / file zu senden
Aber den Mann zu Rate ziehen und eine E-Mail senden
BUGS Bitte melden Sie Bugs und senden Sie Patches an den Bug Tracker unter http://bugs.gw.com/ oder an die Mailingliste unter ⟨[email protected]⟩ (besuchen Sie http://mx.gw.com/mailman/). listinfo / Datei zuerst abonnieren).
Ich musste herausfinden, dass die Mail-Adresse nicht existiert.
Gibt es eine andere Art der Kommunikation mit der Community? Hoffentlich ist diese Frage hier schon dabei :)
Also hier ist meine E-Mail:
Möglicher Funktionsfehler: Die
--extension
Option scheint nichts auszugeben$ file --extension "ab.gif" ab.gif: ???
Es wäre nützlich, wenn Sie die Ausgabe von this verwenden könnten, um eine Datei in die richtige Erweiterung umzubenennen.
so etwas wie Datei
--likely_extension
würde nur die wahrscheinlich erkannte Erweiterung oder einen Fehler ausgeben, wenn die Erkennung zu niedrig warwie so:
$ file --likely_extension "ab.gif" gif
Besser wäre allerdings eine
--correct_extension
Option:$ file --correct_extension "ab.jpg" $ ls ab.gif
Tyvm für diese App :)
quelle
file --extension
tut Arbeit für einige Dateitypen (wie .jpg). Möglicherweise "funktioniert" fir .gif nicht, da es keine anderen gültigen Dateierweiterungen gibt.file --extension calf.jpg flower.gif
Ausgaben:calf.jpg: jpeg/jpg/jpe/jfif
undflower.gif:
Anzeigen der möglichen anderen Erweiterungen für diese Dateien (keine im Fall der GIF-Datei). Beachten Sie, dassfile
nur eine fundierte Schätzung des Dateityps erforderlich ist. Hierzu werden verschiedene Heuristiken verwendet. Die Erweiterung wird nicht anhand des Namens erkannt. Wenn ich es in umbenennecalf.jpg
, istcalf.txt
es immer noch eine JPEG-Datei undfile
sagt mir, dass wenn ichfile calf.txt
es starte, es mir auch sagt, dass die möglichen Erweiterungen sind,jpeg/jpg/jpe/jfif
wenn ich es startefile --extension calf.txt
.Antworten:
Um ein Problem oder eine Erweiterungsanforderung einzureichen, gehen Sie wie folgt vor: Befolgen Sie diese Anweisungen, wenn in der Dokumentation eines Programms erwähnt wird, wie dies getan wird.
Leider kommt es häufig vor, dass Projekte abstürzen oder dass die Anweisungen in Ihrer Version nicht mehr korrekt sind. In diesen Fällen wird es etwas schwieriger. Ein möglicher allgemeiner Ansatz besteht darin, einen Fehler bei Ihrer Distribution zu melden. Erfolg gibt es allerdings eher als Treffer oder Misserfolg ... (Ich sollte erwähnen, dass es normalerweise besser ist, einen Fehler an die Distribution zu melden , von der Sie Ihr Paket erhalten haben, wenn Sie ein Paket verwenden. Dies gilt insbesondere, wenn das Paket gepackt ist Version ist älter als die aktuelle "Upstream" -Version, und wenn Sie nicht überprüft haben, ob das Problem noch vorhanden ist.)
Für
file
Insbesondere die offizielle Dokumentation wurde aktualisiert , zu erwähnen , dass die Bug - Tracker und Mailing - Liste sind unten, und es bietet auch eine direkte E - Mail - Adresse für den aktuellen Betreuer, die Sie nutzen könnten , ihn zu kontaktieren.quelle
Zusätzlich zu Stephen Kitts Antwort könnten Sie überlegen (insbesondere wenn Sie selbst Entwickler sind und das Programm -
file
in Ihrem Fall - einen nicht allzu schwer verständlichen Quellcode hat), den Quellcode dieses Programms abzurufen (vielleicht von Ihrem Distribution) - da es sich um freie Software handelt - und Patchen und auch Versenden eines Patches.Wenn Sie sich Zeit nehmen, um den Quellcode zu studieren , werden Sie wahrscheinlich einen besseren Fehlerbericht erstellen.
Wenn Sie sich mehr Zeit nehmen, um einen Fixing-Patch vorzuschlagen , werden Sie wahrscheinlich ernsthafter in Betracht gezogen (und IMHO verhalten Sie sich eher im Geiste freier Software).
So verwenden Sie die Freiheit , bereitgestellt durch freie Software : studieren seinen Quellcode (Freiheit # 1) und verbessern es (Freiheit # 3).
Heute ist es sehr einfach, Ihre verbesserte Version zu veröffentlichen (z. B. auf Github ) und zu teilen (Freiheit 2).
Stellen Sie sicher, dass Sie die neueste Version des
file
Programms haben. Viele Distributionen verwenden das nicht (und vielleicht wurde der Fehler in Ihrer Distribution bereits behoben).Ich bin nicht sicher, ob Ihr
--correct_extension
Verhalten dazu gehörtfile
(das ist ein Programm , mit dem Sie Ihre Daten abfragen und nicht ändern können). Aber wenn ja, sollte es wahrscheinlich buchstabiert werden--correct-extension
oder--rename-extension
... Und wenn Sie versuchen, dies zu implementieren, werden Sie möglicherweise feststellen, dass es seltsame Eckfälle gibt (wie wäre es mit einer gezippten TAR-Datei oder einer komprimierten C-Quelldatei oder etwas anderem, das dies könnte) mehrere Dateierweiterungen benötigen).Beachten Sie, dass eine Datei (im Gegensatz zu Windows) unter Linux & Unix tatsächlich eine Inode ist (siehe Inode (7) ) und mehrere Namen (oder keine) haben kann und von mehreren Prozessen gleichzeitig geöffnet werden kann (Informationen zu Dateideskriptoren ). oder keine, auch wenn die meisten Dateien nur einen Namen haben (siehe aber link (2) & stat (2) ). Da die gleiche Datei benannt werden könnte
foo.txt
undbar.gz
es wenig sinnvoll ist, Dateierweiterungen Bedeutung beizumessen. Siehe auch path_resolution (7) .Wenn Sie also versuchen, Ihre
correct-extension
Idee umzusetzen , werden Sie feststellen, dass es nicht so einfach ist, sie umzusetzen (und sogar anzugeben), und dass es dafür kein offensichtliches einfaches Verhalten gibt.Wahrscheinlich ist Ihre Idee nicht sehr gut und kann nicht einfach auf Linux- und POSIX-Systemen implementiert werden (zumindest nicht in allen Fällen).
Ich empfehle daher, nicht einmal eine Funktionsanfrage zu stellen (in der ursprünglichen Form ist dies ein Zeitverlust für Sie und die Entwickler von
file
). Oder arbeiten Sie viel daran, verbessern Sie die Spezifikationen und reichen Sie einen Patch ein ... Natürlich werden Sie viel daran arbeiten (und ich denke wirklich nicht, dass es den Schmerz wert ist).Vielleicht lesen Sie auch ein Unix-Programmierbuch (wie das alte ALP oder etwas neueres) sowie Intro (2) & Syscalls (2 ) und Betriebssysteme: Three Easy Pieces .
quelle
file
die Informationen liefern und nichts ändern. Der Gedanke, dass die "Erweiterung" einer Datei in irgendeiner Weise angibt, mit welcher (n) Anwendung (en) sie geöffnet werden soll (en), ist sehr Windows-orientiert. Linux ist immer dem "Magic Number" -Ansatz gefolgt, in den ersten Bytes einer Datei eine eindeutige Signatur zu setzen und dann zuzulassen, dass der Name beliebig ist. In analoger Weise war ich eine Datei in einem Windows-System, ich müsste "Monty Harder.human" sein, damit alles weiß, was ich bin, aber Linux sieht das als Teil meines Inhalts und der Name ist ungezwungen.file
mit dermagic
Datei, daher weiß ich nicht, wie "nachgerüstet" es ist. Bei MacOS wurde ein expliziter Dateityp in die Dateimetadaten ("Resource Fork") eingefügt, der in der Datei, jedoch in einem separaten Container gespeichert ist.Du fragst:
und um das zu beantworten, ist es wichtig zu wissen, dass es an sich kein "GNU Linux" gibt. Das GNU-Projekt ist eine gemeinsame Anstrengung, um freie Software zu entwickeln. Ein Teil dieser freien Software - zusammen mit großen Mengen anderer freier und Open-Source-Software - wird von anderen Projekten gesammelt : entweder von kollaborativen, offenen Projekten wie Fedora * oder Debian oder von Unternehmensanstrengungen mit unterschiedlichem Grad an Offenheit oder sogar von Einzelpersonen. Diese Sammlungen heißen "Linux Distributions" oder "GNU / Linux Distributions" (es gibt dort eine politische Debatte, auf die ich nicht eingehen werde).
Wenn Sie an der Funktionserweiterung interessiert sind, ist es im Allgemeinen am besten, mit dem Entwickler zusammenzuarbeiten, der die Software geschrieben hat. Die Distributionen müssen eine Menge Arbeit auf sich nehmen, um die verschiedenen Softwareprogramme zu sammeln und sie normal zusammenarbeiten zu lassen Ich würde es vorziehen, wenn diese Änderungen "vorgelagert" erfolgen.
Also haben Sie hier das Richtige getan - Sie haben die dokumentierte Quelle gefunden und versucht, dort zu berichten.
Es scheint jedoch, dass die dokumentierten Kommunikationsmethoden für die Software, an der Sie interessiert sind, nicht funktionieren. In diesem Fall haben Sie mehrere Möglichkeiten:
file
Befehl, der ursprünglich von Ian Darwin geschrieben und nominell unter http://www.darwinsys.com/file/ zusammen mit den von Ihnen erwähnten Mailinglisten abgelegt wurde . Aber wie bei diesen Mailinglisten scheint die Hauptseite nicht erreichbar zu sein. In der heutigen Zeit ist das Überprüfen von GitHub ein guter zweiter Schritt, und ich habe festgestellt, dass https://github.com/file/file - der schreibgeschützte Spiegel des Datei-CVS-Repositorys - jede halbe Stunde aktualisiert wird. HINWEIS: Machen Sie hier keine Pull-Anfragen, kommentieren Sie keine Commits und senden Sie diese nicht wie gewohnt an den Bug-Tracker oder an die Mailingliste. Das ist nicht sofort hilfreich, aber ich merke, dass es hatÄnderungen an diesem Repo in der letzten Woche. Ein möglicher nächster Schritt ist also, zu sehen, wer diese Verpflichtungen erfüllt hat, und sie zu kontaktieren.file
zu Fedora finden Sie auf dieser Seite . Da sie regelmäßig mit der Software arbeiten, haben sie möglicherweise andere Möglichkeiten, den Upstream zu kontaktieren. Je nach Distribution erfolgt dies am besten durch Einreichen eines Fehlers oder durch direkten Kontakt - Sie müssen die jeweilige Kultur kennen. (In Fedora würde ich die Entwickler-Mailingliste vorschlagen .)* Ich arbeite an Fedora. Und ich bin bei Red Hat angestellt.
quelle
Dies ist ein Fehler in Ihrer Distribution. Wenn die Distribution Man-Pages versendet, die nicht mehr aktuell sind, sollten Sie einen Fehler gegen das Paket einreichen, das sie bereitgestellt hat. Wenn Sie Debian verwenden, können Sie ein Tool wie reportbug verwenden, um dies zu vereinfachen.
quelle
Die [0] steht für das erste Bild. Dies kann hilfreich sein, wenn Sie es versehentlich in einem Video verwenden, da ansonsten ffmpeg-Bibliotheken verwendet werden, um eine temporäre Kopie jedes Bilds zu erstellen.
Dies funktioniert nur für Bilder. Ich weiß nicht, wie ich es für generische Dateien machen soll.
ffmpeg gibt 'avc1' für eine zufällige mp4-Datei zurück (andere mp4-Dateien geben möglicherweise andere Zeichenfolgen zurück, und Sie müssen sie noch analysieren), und ich sehe keine Möglichkeit, von dieser zu 'mp4' zu gelangen. 'avc1' ist nirgends in / usr / share / mime.ffmpeg oder äquivalent ffprobe listet einige Dateiformate auf, die der Demuxer zu Beginn seiner Ausgabe verwendet. Für eine mp4-Datei heißt es
für ein png heißt es
quelle