Além da resposta de Stephen Kitt , você pode considerar (especialmente se você for um desenvolvedor, e se o programa - file
no seu caso - tem código fonte que não é muito difícil de entender) buscando o código fonte daquele programa (talvez da sua distribuição) - já que é software livre - e remendando-o, e também enviando um patch.
Se você reservar um tempo para estudar o código-fonte , provavelmente fará um relatório de erros melhor.
Se você dedicar mais tempo para propor um patch de correção , provavelmente você será considerado mais seriamente (e IMHO você está agindo mais no espírito do software livre).
Então use a liberdade oferecida pelo software livre : estude seu código-fonte (liberdade # 1) e melhorá-lo (liberdade # 3).
Hoje é muito fácil publicar (por exemplo, no github ) sua versão melhorada e compartilhá-la (freedom # 2).
Certifique-se de ter a versão mais recente do programa file
. Muitas distribuições não estão usando isso (e talvez o bug na sua distribuição já tenha sido corrigido pelo autor).
Não tenho certeza de que seu comportamento --correct_extension
pertença a file
(que é um programa para consultar , e não alterar seus dados). Mas se isso acontecer, provavelmente deve ser escrito --correct-extension
ou --rename-extension
... E uma vez que você tentar implementar isso, você pode descobrir que existem casos esquisitos estranhos (que dizer de um arquivo tar compactado ou de uma fonte C compactada? arquivo, ou algo que pode precisar de várias extensões de arquivo).
Observe que (ao contrário do Windows) no Linux & Unix um arquivo é na verdade um inode (veja inode (7) ) e podem ter vários nomes (ou nenhum), e pode ser aberto por vários processos de uma vez (leia sobre descritos de arquivo ) - ou nenhum, mesmo que a maioria dos arquivos tenha apenas um nome (mas veja link (2) e stat (2) ). Como o arquivo mesmo pode ser denominado foo.txt
e bar.gz
, não faz muito sentido atribuir importância às extensões de arquivo. Veja também path_resolution (7) .
Então, se você tentar implementar sua idéia de correct-extension
, descobrirá que não é tão simples de implementar (e até de especificar), e que não há um comportamento óbvio simples para isso.
Provavelmente, sua idéia não é muito boa e não pode ser facilmente implementada em sistemas Linux e POSIX (pelo menos, não para todos os casos).
Por isso, recomendo evitar o envio de uma solicitação de recurso (em sua forma inicial, é uma perda de tempo para você e para os desenvolvedores de file
). Ou então, trabalhe muito, melhore suas especificações e envie um patch ... É claro que você vai gastar muito trabalho nisso (e eu realmente não acho que valha a pena).
Talvez também leia algum livro de programação do Unix (como o antigo ALP ou algo mais recente e também intro (2) & syscalls (2) ) e Sistemas Operacionais: Três Partes Fáceis .