Estou tentando enviar um relatório de erro para o arquivo do aplicativo, / usr / bin / file
Mas consultar o homem e enviar um email
ERROS Por favor, reporte erros e envie correções para o rastreador de erros em http://bugs.gw.com/ ou a lista de discussão em ⟨[email protected]⟩ (visite http://mx.gw.com/mailman/ listinfo / arquivo primeiro a se inscrever).
Me fez descobrir que o endereço de email não existe.
Existe outra maneira de se comunicar com a comunidade? Espero que esta pergunta aqui já faça parte dela :)
Então aqui está o meu email:
possível falha do recurso: a
--extension
opção parece não produzir nada$ file --extension "ab.gif" ab.gif: ???
Seria útil poder usar facilmente a saída disso para renomear um arquivo para sua extensão correta.
algo como arquivo
--likely_extension
só produziria a extensão provavelmente detectada ou um erro se a detecção fosse muito baixaassim:
$ file --likely_extension "ab.gif" gif
melhor ainda seria uma
--correct_extension
opção:$ file --correct_extension "ab.jpg" $ ls ab.gif
Tyvm para este aplicativo :)
fonte
file --extension
faz trabalho para alguns tipos de arquivo (como .jpg). Talvez não "funcione" .gif porque não há outras extensões de arquivo válidas.file --extension calf.jpg flower.gif
outputs:calf.jpg: jpeg/jpg/jpe/jfif
eflower.gif:
mostrando as possíveis outras extensões para esses arquivos (nenhuma no caso do arquivo GIF). Observe quefile
apenas adivinha o tipo de arquivo - ele usa um conjunto de heurísticas para fazer isso. Não está detectando a extensão do nome. Se eu renomeácalf.jpg
-calf.txt
lo, ele ainda é um arquivo JPEG efile
diz que, quando executofile calf.txt
, também informa que as extensões possíveis sãojpeg/jpg/jpe/jfif
quando executofile --extension calf.txt
.Respostas:
Você está seguindo o procedimento correto para registrar um problema ou solicitação de aprimoramento: se a documentação de um programa mencionar como fazer isso, siga essas instruções.
Infelizmente, muitas vezes acontece que os projetos morrem ou que as instruções na versão que você possui não são mais precisas. Nesses casos, as coisas se tornam um pouco mais difíceis. Uma abordagem geral possível é registrar um erro em sua distribuição; No entanto, pode haver algum sucesso ou falha ... (devo mencionar que geralmente é melhor relatar um bug na distribuição da qual você recebeu o pacote, se você estiver usando um pacote; isso é especialmente verdadeiro se o pacote versão é mais antiga que a versão "upstream" atual e se você não verificou se o problema ainda está presente lá.)
Para
file
especificamente, a documentação oficial foi atualizado para mencionar que o bug tracker e lista de discussão estão para baixo, e também fornece um endereço de e-mail direto para o mantenedor atual, que você poderia usar para entrar em contato com ele.fonte
Além da resposta de Stephen Kitt , você pode considerar (especialmente se você é um desenvolvedor e se o programa -
file
no seu caso - possui código fonte que não é muito difícil de entender) buscar o código fonte desse programa (talvez do seu distribuição) - por ser um software livre - e corrigi-lo, além de enviar um patch.Se você reservar um tempo para estudar o código fonte , provavelmente fará um relatório de erro melhor.
Se você demorar mais para propor um patch de correção , provavelmente será considerado com mais seriedade (e IMHO está agindo mais no espírito do software livre).
Portanto, use a liberdade fornecida pelo software livre : estude seu código-fonte (liberdade nº 1) e melhore-a (liberdade nº 3).
Hoje é muito fácil publicar (por exemplo, no github ) sua versão aprimorada e compartilhá-la (liberdade nº 2).
Certifique-se de ter a versão mais recente do
file
programa. Muitas distribuições não estão usando isso (e talvez o bug na sua distribuição já tenha sido corrigido antes).Não tenho certeza de que seu
--correct_extension
comportamento pertencefile
(que é um programa para consultar , não alterar, seus dados). Mas se isso acontecer, provavelmente deve ser escrito--correct-extension
ou--rename-extension
... E quando você tentar implementar isso, poderá descobrir que existem casos de canto estranhos (que tal um arquivo tar compactado com gzip ou um arquivo de origem C compactado ou algo que possa precisa de várias extensões de arquivo).Observe que (ao contrário do Windows) no Linux e Unix, um arquivo é realmente um inode (consulte inode (7) ) e pode ter vários nomes (ou nenhum) e pode ser aberto por vários processos ao mesmo tempo (leia sobre descritores de arquivos ) - ou nenhum, mesmo que a maioria dos arquivos tenha apenas um nome (mas consulte o link (2) e stat (2) ). Como o mesmo arquivo pode ser nomeado
foo.txt
ebar.gz
não faz muito sentido atribuir importância às extensões de arquivo. Veja também path_resolution (7) .Portanto, se você tentar implementar sua
correct-extension
ideia, descobrirá que não é tão simples de implementar (e até mesmo especificar) e que não existe um comportamento simples óbvio para isso.Provavelmente, sua ideia não é muito boa e não pode ser facilmente implementada nos sistemas Linux e POSIX (pelo menos, não para todos os casos).
Portanto, recomendo evitar o envio de uma solicitação de recurso (em sua forma inicial, é uma perda de tempo para você e para os desenvolvedores
file
). Ou então, trabalhe bastante, melhore suas especificações e envie um patch ... É claro que você gastará muito trabalho nisso (e eu realmente não acho que valha a pena).Talvez também leia alguns livros de programação Unix (como o antigo ALP , ou algo mais novo; e também a introdução (2) e syscalls (2) ) e Sistemas Operacionais: Three Easy Pieces .
fonte
file
fornece informações e não altera nada. Além disso, a noção de que a "extensão" de um arquivo indica de qualquer forma quais aplicativos devem ser usados para abri-lo é muito orientada ao Windows. O Linux sempre seguiu a abordagem do "número mágico" de colocar uma assinatura distinta nos primeiros bytes de um arquivo e permitir que o nome fosse qualquer coisa. Por analogia, eu era um arquivo em um sistema Windows, teria que ser "Monty Harder.human" para que qualquer coisa soubesse o que eu sou, mas o Linux vê isso como parte do meu conteúdo e o nome é sem restrições.file
com omagic
arquivo, então eu não sei o quão "retro-ajustado" é. A abordagem do MacOS coloca um tipo de arquivo explícito nos metadados do arquivo ("bifurcação de recursos"), que é armazenado dentro do arquivo, mas em um contêiner separado.Você pergunta:
e para responder a isso, é importante saber que não existe nada como "GNU Linux", por si só. O Projeto GNU é um esforço colaborativo para desenvolver software livre. Parte desse software livre - junto com grandes quantidades de outros softwares livres e de código aberto - é coletada por outros projetos: projetos colaborativos e abertos como o Fedora * ou Debian, ou esforços corporativos com diferentes graus de abertura, ou mesmo indivíduos. Essas coleções são chamadas de "Distribuições Linux" ou "Distribuições GNU / Linux" (existe um debate político no qual não vou entrar).
Em geral, se você estiver interessado em aprimorar os recursos , a melhor coisa a fazer é trabalhar com o desenvolvedor que escreveu o software - as distribuições têm muito trabalho a fazer para coletar os vários softwares e fazê-los funcionar juntos, e normalmente que preferem essas mudanças a acontecer "upstream".
Então, você fez a coisa certa aqui - encontrou a fonte upstream documentada e tentou reportar lá.
Parece, no entanto, que os métodos de comunicação documentados para o software em que você está interessado não estão funcionando. Nesse caso, você tem várias opções:
file
comando originalmente escrito por Ian Darwin e abrigado nominalmente em http://www.darwinsys.com/file/ , com as listas de discussão que você mencionou. Mas, como essas listas de discussão, o site principal parece estar inativo. Atualmente, verificar o GitHub é um bom segundo passo, e encontrei https://github.com/file/file - que diz Espelho somente leitura do repositório CVS de arquivo, atualizado a cada meia hora. NOTA: não faça solicitações pull aqui, nem comente nenhuma confirmação, envie-as da maneira usual para o rastreador de erros ou para a lista de discussão. Isso não é imediatamente útil, mas eu aviso que não têmhouve mudanças nesse repo na semana passada. Portanto, um próximo passo possível é ver quem fez esses commits e contatá-los.file
no Fedora, veja esta página . Como eles trabalham com o software regularmente, eles podem ter outros meios de entrar em contato com o upstream. Dependendo da distribuição, é melhor arquivar um bug ou entrar em contato direto - você precisa conhecer a cultura individual. (No Fedora, sugiro a lista de discussão devel .)* Eu trabalho no Fedora. E eu sou funcionário da Red Hat.
fonte
Este é um erro na sua distribuição. Se a distribuição estiver enviando páginas de manual desatualizadas, você deverá registrar um bug no pacote que a forneceu. Se você estiver usando o debian, poderá usar uma ferramenta como reportbug para tornar isso mais simples.
fonte
O [0] significa o primeiro quadro, o que poderia ajudar se você o usar acidentalmente em um vídeo, caso contrário, ele usa as bibliotecas ffmpeg para fazer uma cópia temporária de cada quadro.
Isso funciona apenas para imagens. Não sei como fazer isso para arquivos genéricos.
O ffmpeg retorna 'avc1' para um arquivo mp4 aleatório (outros arquivos mp4 podem retornar cadeias diferentes e você ainda precisa analisá-lo), e não vejo uma maneira de passar disso para 'mp4'. 'avc1' não está em nenhum lugar em / usr / share / mime.ffmpeg, ou equivalentemente ffprobe, lista alguns formatos de arquivo que o desmuxer usa no início de sua saída. Para um arquivo mp4, ele diz
para um png diz
fonte