shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: [shell-script] Procurando arquivo no formato tar


From: Anderson Deluiz Santos
Subject: RES: [shell-script] Procurando arquivo no formato tar
Date: Fri, 4 Apr 2003 12:32:10 -0300

Fala "Mestre" Júlio,

Dei uma olhada no man (file v3.33) para recapitular pois fazia tempo que
não via isso, mas acho que você já sabe disso tudo. Mas vale postar pois
o pessoal da lista fica sabendo...
O cmd file faz uma procura primeiramente nos i-nodes para saber primeiro
se o arquivo é de um tipo conhecido do SO (similar ao cmd stat(linux) ou
istat (AIX)). Feito isso, caso seja um arquivo ordinário ele passa ao
segundo passo que é ler um determinado pedaço no início do arquivo,
utilizando um offset X, onde pode conter um "magic number" (talvez daí
venha o nome "magic file") que dará informações se o arquivo é de alguns
tipos específicos como executável ou dados. Se ele não achar, vai para
outro teste verificando se é um arquivo texto e em que codificação se
encontra (ASCII, EDBDIC, ISSO-8859-1,...) e sendo um destes tipos, tenta
descobrir a linguagem procurando por strings específicas.
No arquivo magic pude perceber que existe o offset a ser utilizado, o
tipo de dado procurado, o dado a ser comparado e um campo (o primeiro
campo para ser mais exato) que não sei se um tipo de operação lógica,
quando aparece '>' ou '>>'. Em algumas ocorrências desses caracteres,
percebi que seriam formas variantes do arquivo referenciado
anteriormente. Não entendi se o número que aparece depois dos caracteres
é na verdade um incremento no offset para esses arquivos variantes.

Espero ter sido claro...a lógica parece ser meio confusa mesmo.

Para o pessoal da lista, o man ainda diz mais coisas...divirtam-se.

[]s,

Anderson



-----Mensagem original-----
De: Julio Cezar Neves - DATAPREVRJ
[mailto:address@hidden] 
Enviada em: quinta-feira, 3 de abril de 2003 19:25
Para: address@hidden
Assunto: RES: [shell-script] Procurando arquivo no formato tar


Fala Anderson,
já li 500 vezes o man do file (SVr4) e até hoje não consegui captar a
essência do seu algorítmo. Sei que ele baseia-se em uma série de modelos
pré-cadastrados em um arquivo chamado "Magic File", mas este arquivo é
cifrado e contém além dos modelos, vários algorítmos. 

Sei tb que caso não encontre correspondência, ele chuta English Text,
conforme vc havia dito, mas dei esta dica, pq como o formato tar é ultra
badalado (até o windows reconhece), com certeza o cmd file reconhecerá.
Tenho um sistema de transmissão de dados que usa o file para reconhecer
se um arquivo está no formato EBCDIC e comprimido. Com certeza, por este
sistema já passaram + de 10000 arquivos e o file até hoje não me
decepcionou.

Se alguém na lista conhece direito o algorítimo de inferências e o tal
do "Magic File" do cmd file, favor explicar.

[ ]s,
Julio Cezar Neves
-Eu Apoio o Software Livre-
-I Support Free Software-
* +55 21 2528-7070  /  9853-4044
*address@hidden


> -----Mensagem original-----
> De: address@hidden [mailto:address@hidden] Enviada em:

> quinta-feira, 3 de abril de 2003 15:34
> Para: address@hidden
> Assunto: RE: [shell-script] Procurando arquivo no formato tar
> 
> 
> Julio,
> 
> Acredito que vc ja saiba isso...vale mais para o Auriberto
> O comando file somente reconhece os tipos de arquivos que
> estao "cadastrados"
> em sua base de dados. Pelo menos no AIX funciona dessa forma...
> Sendo assim, se rodar o file para um arquivo que não está lá, 
> ele reconhece
> como "data or international language text" deixando tudo na 
> mesma...sem
> saber o que é.
> No caso dele, vai funcionar pois é para o tar que ele precisa 
> mas num caso
> genérico pode babar...
> 
> []s
> 
> Anderson
> 
> >-- Mensagem original --
> >To: "'auriberto_alsr <address@hidden> '"
> >      <address@hidden>,
> "'address@hidden '"
> >      <address@hidden>
> >From: Julio Cezar Neves - DATAPREVRJ
> >      <address@hidden>
> >Date: Thu, 3 Apr 2003 15:20:48 -0300
> >Subject: RE: [shell-script] Procurando arquivo no formato tar
> >Reply-To: address@hidden
> >
> >
> > Fala Auriberto,
> >o cmd file te devolve o tipo de conteudo de um arquivo. Veja
> os exemplos:
> >
> >Prompt> file pacote.tar
> >pacote.tar:     tar
> >Prompt> file ../c/faz.c
> >../c/faz.c:     ascii text
> >Prompt> file ../c/faz
> >../c/faz:       ELF 32-bit LSB executable 80386 Version 1
> >Prompt> file rotinas.sh
> >rotinas.sh:     ascii text
> >Prompt> file quequeisso
> >quequeisso:     English text
> >
> >[ ]s,
> >Julio
> >
> >-----Mensagem original-----
> >De: auriberto_alsr <address@hidden>
> >Para: address@hidden
> >Enviada em: 2/4/2003 13:57
> >Assunto: [shell-script] Procurando arquivo no formato tar
> >
> >Olá pessoal.
> >
> >O script abaixo consegue encontrar arquivos com formato "tar" porém,
> >se o usuário digitar um arquivo com outro formato (arq.txt, por 
> >exemplo), existente, o programa aceita. Que fazer para que o 
> programa
> >abaixo rejeite todos os arquivos que não tenham o formato "tar"?
> >
> >Agradeço a todos.
> >
> >Auriberto.
> >
> >====================================================================
> >while true; do
> >echo -e "Digite nome de arquivo com formato tar: \"
> >read ArqTar
> >if [ "$ArqTar" ]
> >then
> >   :
> >else
> >   echo -e "Você não digitou nada."
> >   echo -e "Tecle Enter para continuar nesta tela."
> >   read
> >   continue
> >fi
> >
> >Var1="`find ~/ -name "$ArqTar" -print 1> arquivo.txt | cat
> >arquivo.txt 2>/dev/null`"
> >
> >if [ -f "$Var1" ]
> >then
> >   echo -e "Arquivo encontrado."
> >   exit
> >else
> >   echo -e "Arquivo não possui formato tar."
> >   exit
> >fi
> >done 
> >=====================================================================
> >
> >
> >
> >
> >
> >---------------------------------------------------------------------
> >Esta lista não admite a abordagem de outras liguagens de programação,

> >como perl, C etc. Quem insistir em não seguir esta regra
> será moderado
> >sem prévio aviso.
> >---------------------------------------------------------------------
> >Sair da lista: address@hidden
> >---------------------------------------------------------------------
> >Esta lista é moderada de acordo com o previsto em 
> >http://www.listasdiscussao.cjb.net
> >---------------------------------------------------------------------
> > 
> >
> >Seu uso do Yahoo! Grupos é sujeito às regras descritas em: 
> >http://br.yahoo.com/info/utos.html
> >
> >
> >
> >---------------------------------------------------------------------
> >Esta lista não admite a abordagem de outras liguagens de
> programação, como
> > perl, C etc. Quem insistir em não seguir esta regra será
> moderado sem
> prévio
> > aviso.
> >---------------------------------------------------------------------
> >Sair da lista: address@hidden
> >---------------------------------------------------------------------
> >Esta lista é moderada de acordo com o previsto em
http://www.listasdiscussao.cjb.net
>---------------------------------------------------------------------
> 
>
>Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
> 
>
>




---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação,
como perl, C etc. Quem insistir em não seguir esta regra será moderado
sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listasdiscussao.cjb.net
---------------------------------------------------------------------
 

Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html 



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação,
como perl, C etc. Quem insistir em não seguir esta regra será moderado
sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listasdiscussao.cjb.net
---------------------------------------------------------------------
 

Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]