J'essaie d'envoyer un rapport de bogue pour le fichier d'application, / usr / bin / file
Mais consulter l'homme et envoyer un email
BOGUES Veuillez signaler les bogues et envoyer les correctifs au gestionnaire de bogues à l’adresse http://bugs.gw.com/ ou à la liste de diffusion à l’adresse [email protected] (visitez le site http://mx.gw.com/mailman/ listinfo / fichier d’ abord pour s’abonner).
M'a fait découvrir l'adresse e-mail n'existe pas.
Y a-t-il un autre moyen de communiquer avec la communauté? Espérons que cette question en fait déjà partie :)
Alors voici mon email:
défaillance possible de la fonctionnalité: l'
--extension
option ne semble rien produire$ file --extension "ab.gif" ab.gif: ???
Il serait utile de pouvoir facilement utiliser la sortie de ceci pour renommer un fichier avec son extension correcte.
quelque chose comme fichier
--likely_extension
ne produirait que l'extension probablement détectée ou une erreur si la détection était trop faiblecomme ceci:
$ file --likely_extension "ab.gif" gif
mieux serait une
--correct_extension
option:$ file --correct_extension "ab.jpg" $ ls ab.gif
Tyvm pour cette application :)
la source
file --extension
fait le travail pour certains types de fichiers (comme .jpg). Peut-être que cela ne "fonctionne" pas fir .gif car il n’existe aucune autre extension de fichier valide.file --extension calf.jpg flower.gif
sorties:calf.jpg: jpeg/jpg/jpe/jfif
etflower.gif:
montrant les autres extensions possibles pour ces fichiers (aucune dans le cas du fichier GIF). Notez quefile
le type de fichier n’est qu’une supposition éclairée: il utilise un ensemble d’heuristiques pour le faire. Il ne détecte pas l'extension à partir du nom. Si je renommecalf.jpg
àcalf.txt
c'est toujours un fichier JPEG etfile
me dit que quand je lancefile calf.txt
il me dit aussi que les extensions possibles sontjpeg/jpg/jpe/jfif
quand je coursfile --extension calf.txt
.Réponses:
Vous suivez la procédure appropriée pour déposer un problème ou une demande d'amélioration: si la documentation d'un programme indique comment procéder, suivez ces instructions.
Malheureusement, il arrive souvent que des projets meurent ou que les instructions de votre version ne soient plus précises. Dans ces cas, les choses deviennent un peu plus difficiles. Une approche générale possible consiste à déposer un bogue avec votre distribution. Le succès peut être plutôt aléatoire si (je devrais mentionner qu'il est généralement préférable de signaler un bogue à la distribution à partir de laquelle vous avez reçu votre paquet, si vous utilisez un paquet; c'est particulièrement vrai si le paquet la version est plus ancienne que la version «en amont» actuelle, et si vous n'avez pas vérifié si le problème y est toujours présent.)
En
file
particulier, la documentation officielle a été mise à jour pour indiquer que le suivi des bogues et la liste de diffusion sont en panne, et fournit également une adresse électronique directe pour le responsable actuel, que vous pouvez utiliser pour le contacter.la source
En plus de la réponse de Stephen Kitt , vous pourriez envisager (surtout si vous êtes vous-même développeur et si le programme -
file
dans votre cas - a un code source pas trop difficile à comprendre) de récupérer le code source de ce programme (peut-être de votre distribution) - puisque c’est un logiciel libre - et en le corrigeant, ainsi qu’en envoyant un correctif.Si vous prenez le temps d' étudier le code source , vous ferez probablement un meilleur rapport de bogue.
Si vous prenez plus de temps pour proposer un correctif , vous serez probablement considéré plus sérieusement (et à mon humble avis, vous agissez davantage dans l’esprit du logiciel libre).
Utilisez donc la liberté fournie par le logiciel libre : étudiez son code source (liberté n ° 1) et améliorez-le (liberté n ° 3).
Aujourd'hui, il est très facile de publier (par exemple sur github ) votre version améliorée et de la partager (liberté n ° 2).
Assurez-vous d'avoir la dernière version du
file
programme. Beaucoup de distributions ne l'utilisent pas (et peut-être que le bogue de votre distribution a déjà été corrigé en amont).Je ne suis pas sûr que votre
--correct_extension
comportement appartienne àfile
(qui est un programme pour interroger , pas changer, vos données). Mais si c'est le cas, il devrait probablement être orthographié--correct-extension
ou--rename-extension
... Et une fois que vous aurez essayé de le mettre en œuvre, vous découvrirez peut-être des cas étranges (que diriez-vous d'un fichier tar compressé, d'un fichier source C compressé, ou de quelque chose qui pourrait besoin de plusieurs extensions de fichiers).Notez que (contrairement à Windows) sur Linux & Unix, un fichier est en réalité un inode (voir inode (7) ) et peut avoir plusieurs noms (ou aucun) et peut être ouvert simultanément par plusieurs processus (en savoir plus sur les descripteurs de fichier ) - ou none, même si la plupart des fichiers n'ont qu'un seul nom (mais voir link (2) & stat (2) ). Comme le même fichier peut être nommé
foo.txt
,bar.gz
il n’est pas logique d’accorder de l’importance aux extensions de fichier. Voir aussi path_resolution (7) .Donc, si vous essayez de mettre en œuvre votre
correct-extension
idée, vous découvrirez que ce n'est pas si simple à mettre en œuvre (et même à préciser), et qu'il n'y a pas de comportement simple évident pour cela.Votre idée n’est probablement pas très bonne et ne peut pas être facilement mise en œuvre sur les systèmes Linux et POSIX (du moins, pas dans tous les cas).
Je recommande donc d'éviter même de soumettre une demande de fonctionnalité (dans sa forme initiale, c'est une perte de temps pour vous et pour les développeurs de
file
). Sinon, travaillez beaucoup dessus, améliorez ses spécifications et soumettez un correctif ... Bien sûr, vous y passerez beaucoup de temps (et je ne pense vraiment pas que cela en vaut la peine).Peut-être aussi lu quelques livres de programmation Unix (comme l’ancien ALP , ou quelque chose de plus récent; et aussi intro (2) & syscalls (2) ) et systèmes d’exploitation: Trois pièces faciles .
la source
file
fournit des informations et ne change rien. En outre, l'idée selon laquelle "l'extension" d'un fichier indique de quelle manière les applications à utiliser pour l'ouvrir est très orientée Windows. Linux a toujours suivi l'approche du «nombre magique» consistant à insérer une signature distincte dans les premiers octets d'un fichier et à permettre ensuite à son nom d'être n'importe quoi. Par analogie, j’étais un fichier dans un système Windows, je devais être "Monty Harder.human" pour que quoi que ce soit sache ce que je suis, mais Linux le voit comme une partie de mon contenu, et le nom est non contraint.file
lemagic
fichier, donc je ne sais pas à quel point il est "rétro-équipé". L'approche de MacOS a mis un type de fichier explicite dans les métadonnées du fichier ("ressource fork"), qui est stockée à l'intérieur du fichier mais dans un conteneur séparé.Tu demandes:
et pour répondre à cela, il est important de savoir qu’il n’existe pas de «GNU Linux» en tant que tel. Le projet GNU est un effort collaboratif visant à développer des logiciels libres. Une partie de ce logiciel libre - ainsi que d’ autres logiciels libres et open source - sont collectés par d’ autres projets: des projets collaboratifs ou ouverts, comme Fedora * ou Debian, ou des efforts d’entreprise avec plus ou moins d’ouverture, voire des particuliers. Ces collections sont appelées "Distributions Linux" ou "Distributions GNU / Linux" (il existe un débat politique dans lequel je ne rentrerai pas).
En général, si vous êtes intéressé par l' amélioration des fonctionnalités , la meilleure chose à faire est de travailler avec le développeur qui a écrit le logiciel - les distributions ont beaucoup de travail à faire pour rassembler les différents logiciels et les faire fonctionner ensemble, et normalement serait préférer ces changements se produire « en amont ».
Donc, vous avez fait le bon choix ici - vous avez trouvé la source documentée en amont et essayé de faire un compte rendu.
Il semble toutefois que les méthodes de communication documentées pour le logiciel qui vous intéresse ne fonctionnent pas. Dans ce cas, vous avez plusieurs options:
file
commande écrite à l'origine par Ian Darwin et nominalement hébergée sur http://www.darwinsys.com/file/ , avec les listes de diffusion que vous avez mentionnées. Mais comme ces listes de diffusion, le site principal semble être en panne. De nos jours, vérifier GitHub est une bonne deuxième étape et j'ai trouvé https://github.com/file/file - qui indique que le miroir en lecture seule du référentiel de fichiers CVS est mis à jour toutes les demi-heures. NOTE: ne faites pas de demandes d'extraction ici, ni de commentaires sur les commits, soumettez-les de manière habituelle au gestionnaire de bogues ou à la liste de diffusion. Ce n'est pas immédiatement utile, mais je remarque qu'il y aété changements à ce repo dans la semaine dernière. Il est donc possible de voir qui a commis ces commits et de les contacter.file
dans Fedora, voir cette page . Puisqu'ils travaillent régulièrement avec le logiciel, ils peuvent avoir d'autres moyens de contacter l'amont. En fonction de la distribution, le mieux est de classer un bogue ou par contact direct - vous devez en quelque sorte connaître la culture de chacun. (Dans Fedora, je suggérerais la liste de diffusion devel .)* Je travaille sur Fedora. Et je suis employé par Red Hat.
la source
C'est un bug dans votre distribution. Si la distribution contient des pages de manuel obsolètes, vous devez enregistrer un bogue contre le paquet qui l’a fourni. Si vous utilisez debian, vous pouvez utiliser un outil tel que reportbug pour rendre cela plus simple.
la source
Le [0] désigne la première image, ce qui pourrait vous aider si vous l'utilisez accidentellement sur une vidéo, sinon les bibliothèques ffmpeg sont utilisées pour créer une copie temporaire de chaque image.
Cela ne fonctionne que pour les images. Je ne sais pas comment faire pour les fichiers génériques.
ffmpeg retourne 'avc1' pour un fichier mp4 aléatoire (d'autres fichiers mp4 peuvent renvoyer des chaînes différentes, et vous devez toujours l'analyser), et je ne vois pas le moyen de passer de cela à 'mp4'. 'avc1' ne se trouve nulle part dans / usr / share / mime.ffmpeg, ou de manière équivalente, ffprobe, répertorie certains formats de fichier utilisés par le démultiplexeur au début de sa sortie. Pour un fichier mp4, il est dit
pour un png, il dit
la source