Extrai o tipo de mim específico no shell [closed]

-2

Como posso extrair do arquivo tar apenas texto e arquivos executáveis? Posso fazer isso de alguma forma com curingas?

    
por Ognjen 02.06.2016 / 14:59

1 resposta

2

É possível extrair arquivos específicos usando curingas, mas a filtragem baseada em mimetype ou permissão não pode ser feita sem a extração do arquivo primeiro.

Para filtrar os arquivos, essas opções são úteis:

 --exclude=PATTERN
       exclude files, given as a PATTERN

 --null
       -T reads null-terminated names, disable -C

 -T, --files-from FILE
       get names to extract or create from FILE

 --wildcards
       use wildcards (default for exclusion)

 --wildcards-match-slash
       wildcards match '/' (default for exclusion)

 --no-wildcards-match-slash
       wildcards do not match '/'

 --no-wildcards
       verbatim string matching

 -X, --exclude-from FILE
       exclude patterns listed in FILE

Por exemplo:

$ tar tf foo.tar 
foo/
foo/c/
foo/c/file
foo/b/
foo/b/text
foo/a/
foo/a/executable
$ cat list.txt
*l*
$ tar tf ../foo.tar --wildcards --no-anchored -T list.txt
foo/c/file
foo/a/executable

Portanto, apenas os arquivos contendo l foram impressos.

Para o tipo MIME ou permissões, tar pode gravar o arquivo de saída em um comando externo . tar fornece informações através de variáveis de ambiente sobre o nome do arquivo, tipo, permissões, caminho, etc., que você pode usar para detectar o tipo MIME e as permissões e salvar o arquivo de acordo. Mas você também precisa cuidar da propriedade e da permissão, além do armazenamento temporário do arquivo.

    
por muru 03.06.2016 / 11:12