Estoy tratando de enviar un informe de error para el archivo de la aplicación, / usr / bin / file
Pero consultando al hombre y enviando un correo electrónico
ERRORES Informe de errores y envíe parches al rastreador de errores en http://bugs.gw.com/ o la lista de correo en ⟨[email protected]⟩ (visite http://mx.gw.com/mailman/ lista de información / archivo primero en suscribirse).
Me hizo descubrir que la dirección de correo no existe.
¿Hay otra forma de comunicarse con la comunidad? Esperemos que esta pregunta ya sea parte de ella :)
Así que aquí está mi correo electrónico:
posible fallo de la función: la
--extension
opción no parece mostrar nada$ file --extension "ab.gif" ab.gif: ???
Sería útil poder utilizar fácilmente la salida de este para cambiar el nombre de un archivo a su extensión correcta.
algo como el archivo
--likely_extension
solo generaría la extensión detectada probable o un error si la detección fuera demasiado bajaasí así:
$ file --likely_extension "ab.gif" gif
mejor aunque sería una
--correct_extension
opción:$ file --correct_extension "ab.jpg" $ ls ab.gif
Tyvm para esta aplicación :)
fuente
file --extension
hace el trabajo para algunos tipos de archivos (como .jpg). Tal vez no "funcione" fir .gif porque no hay otras extensiones de archivo válidas.file --extension calf.jpg flower.gif
salidas:calf.jpg: jpeg/jpg/jpe/jfif
yflower.gif:
mostrando las otras extensiones posibles para esos archivos (ninguna en el caso del archivo GIF). Tenga en cuenta quefile
solo toma una conjetura educada sobre el tipo de archivo: utiliza un conjunto de heurísticas para hacerlo. No está detectando la extensión del nombre. Si cambio el nombrecalf.jpg
acalf.txt
que sigue siendo un archivo JPEG yfile
me dice que cuando corrofile calf.txt
también me dice que las posibles extensiones sonjpeg/jpg/jpe/jfif
cuando corrofile --extension calf.txt
.Respuestas:
Está siguiendo el procedimiento correcto para presentar un problema o una solicitud de mejora: si la documentación de un programa menciona cómo hacerlo, siga esas instrucciones.
Desafortunadamente, a menudo sucede que los proyectos mueren o que las instrucciones en la versión que tienes ya no son precisas. En estos casos, las cosas se ponen un poco más difíciles. Un posible enfoque general es presentar un error con su distribución; Sin embargo, el éxito puede ser bastante impredecible ... (Debo mencionar que generalmente es mejor informar un error a la distribución de la que obtuvo su paquete, si está usando un paquete; esto es especialmente cierto si está empaquetado la versión es anterior a la versión actual "ascendente", y si no ha verificado si el problema todavía está presente allí).
Para
file
concretamente, la documentación oficial se ha actualizado para mencionar que el seguimiento de errores y lista de distribución se han reducido, y también proporciona una dirección de correo electrónico directo para el mantenedor actual, que se puede utilizar para ponerse en contacto con él.fuente
Además de la respuesta de Stephen Kitt , puede considerar (especialmente si usted mismo es un desarrollador y si el programa,
file
en su caso, tiene un código fuente que no es demasiado difícil de entender), obtener el código fuente de ese programa (quizás de su distribución), ya que es software libre , y lo parchea, y también envía un parche.Si se toma el tiempo de estudiar el código fuente , probablemente obtendrá un mejor informe de errores.
Si toma más tiempo para proponer un parche de reparación , es probable que lo consideren más en serio (y en mi humilde opinión, está actuando más en el espíritu del software libre).
Entonces, use la libertad que proporciona el software libre : estudie su código fuente (libertad # 1) y mejórelo (libertad # 3).
Hoy es muy fácil publicar (por ejemplo, en github ) su versión mejorada y compartirla (libertad # 2).
Asegúrese de tener la última versión del
file
programa. Muchas distribuciones no usan eso (y tal vez el error en su distribución ya se ha solucionado).No estoy seguro de que su
--correct_extension
comportamiento pertenezcafile
(que es un programa para consultar , no cambiar, sus datos). Pero si lo hace, probablemente debería escribirse--correct-extension
o--rename-extension
... Y una vez que intente implementar eso, puede descubrir que hay casos extraños en las esquinas (¿qué pasa con un archivo tar comprimido, un archivo fuente C comprimido o algo que podría necesita varias extensiones de archivo).Tenga en cuenta que (al contrario de Windows) en Linux y Unix, un archivo es en realidad un inodo (vea inodo (7) ) y puede tener varios nombres (o ninguno), y puede ser abierto por varios procesos a la vez (lea sobre los descriptores de archivo ) - o ninguno, incluso si la mayoría de los archivos tienen un solo nombre (pero vea el enlace (2) y stat (2) ). Dado que se podría nombrar el mismo archivo
foo.txt
ybar.gz
no tiene mucho sentido dar importancia a las extensiones de archivo. Ver también path_resolution (7) .Entonces, si intentas implementar tu
correct-extension
idea, descubrirás que no es tan fácil de implementar (e incluso especificar), y que no existe un comportamiento simple obvio para eso.Probablemente, su idea no es muy buena y no puede implementarse fácilmente en sistemas Linux y POSIX (al menos, no en todos los casos).
Por lo tanto, recomiendo evitar incluso enviar una solicitud de función (en su forma inicial, es una pérdida de tiempo para usted y para los desarrolladores de
file
). O bien, trabaje mucho en ello, mejore sus especificaciones y envíe un parche ... Por supuesto, dedicará mucho trabajo a eso (y realmente no creo que valga la pena).Quizás también lea algún libro de programación de Unix (como el antiguo ALP , o algo nuevo; y también intro (2) & syscalls (2) ) y Sistemas operativos: tres piezas fáciles .
fuente
file
proporciona información y no cambia nada. Además, la noción de que la "extensión" de un archivo de alguna manera indica qué aplicaciones deben usarse para abrirlo está muy orientada a Windows. Linux siempre ha seguido el enfoque del "número mágico" de colocar una firma distintiva en los primeros bytes de un archivo y luego permitir que el nombre sea cualquier cosa. Por analogía, yo era un archivo en un sistema Windows, tendría que ser "Monty Harder.human" para que cualquier cosa supiera lo que soy, pero Linux lo ve como parte de mi contenido, y el nombre es sin restricciones.file
con elmagic
archivo, por lo que no sé qué tan "ajustado" es. El enfoque de MacOS coloca un tipo de archivo explícito en los metadatos del archivo ("fork de recursos"), que se almacena dentro del archivo pero en un contenedor separado.Usted pregunta:
y para responder eso, es importante saber que no existe algo como "GNU Linux", per se. El Proyecto GNU es un esfuerzo de colaboración para desarrollar software libre. Parte de ese software libre, junto con grandes cantidades de otro software gratuito y de código abierto, es recolectado por otros proyectos: ya sea colaborativos, proyectos abiertos como Fedora * o Debian, o esfuerzos corporativos con diversos grados de apertura, o incluso individuos. Estas colecciones se llaman "Distribuciones de Linux" o "Distribuciones de GNU / Linux" (hay un debate político allí en el que no entraré).
En general, si está interesado en la mejora de funciones , lo mejor que puede hacer es trabajar con el desarrollador que escribió el software: las distribuciones tienen mucho trabajo que hacer para recopilar los diversos programas y hacer que funcionen juntos, y normalmente se prefieren aquellos cambios que suceda "aguas arriba".
Entonces, hizo lo correcto aquí: encontró la fuente ascendente documentada e intentó informar allí.
Sin embargo, parece que los métodos de comunicación documentados para el software que le interesa no funcionan. En ese caso, tiene varias opciones:
file
comando originalmente escrito por Ian Darwin y alojado nominalmente en http://www.darwinsys.com/file/ , con las listas de correo que ha mencionado. Pero al igual que esas listas de correo, el sitio principal parece estar inactivo. Hoy en día, verificar GitHub es un buen segundo paso, y encontré https://github.com/file/file , que dice Espejo de solo lectura del repositorio CVS de archivos, actualizado cada media hora. NOTA: no haga solicitudes de extracción aquí, ni comente ninguna confirmación, envíelas de manera habitual al rastreador de errores o a la lista de correo. Eso no es inmediatamente útil, pero noto que no tienenha habido cambios en ese repositorio en la última semana. Entonces, un posible próximo movimiento es ver quién hizo esos compromisos y contactarlos.file
en Fedora, vea esta página . Dado que trabajan con el software regularmente, pueden tener otros medios para contactar con el proveedor. Dependiendo de la distribución, esto se logra mejor mediante la presentación de un error o por contacto directo: es necesario conocer la cultura individual. (En Fedora, sugeriría la lista de correo de desarrollo ).* Yo trabajo en Fedora. Y estoy empleado por Red Hat.
fuente
Este es un error en su distribución. Si la distribución está enviando páginas de manual que están desactualizadas, debe presentar un error contra el paquete que lo proporcionó. Si está utilizando Debian, puede usar una herramienta como reportbug para simplificar esto.
fuente
El [0] significa el primer fotograma, lo que podría ayudar si lo usa accidentalmente en un video, ya que de lo contrario usa las bibliotecas ffmpeg para hacer una copia temporal de cada fotograma.
Esto solo funciona para imágenes. No sé cómo hacerlo para archivos genéricos.
ffmpeg devuelve 'avc1' para un archivo mp4 aleatorio (otros archivos mp4 pueden devolver cadenas diferentes, y aún debe analizarlo), y no veo una manera de pasar de eso a 'mp4'. 'avc1' no está en ningún lugar en / usr / share / mime.ffmpeg, o equivalentemente ffprobe, enumera algunos formatos de archivo que el demuxer usa al comienzo de su salida. Para un archivo mp4 dice
por un png dice
fuente