Algo como isso funciona, mas requer curl & tar a estar presente (geralmente disponível por padrão na maioria dos sistemas)
$ curl -sL -o- "http://ftp.gnu.org/gnu/tar/tar-latest.tar.gz" |tar -tz --wildcards --no-anchored '*.h'
tar-1.29/build-aux/snippet/_Noreturn.h
tar-1.29/build-aux/snippet/arg-nonnull.h
tar-1.29/build-aux/snippet/c++defs.h
tar-1.29/build-aux/snippet/unused-parameter.h
tar-1.29/build-aux/snippet/warn-on-use.h
tar-1.29/gnu/uniwidth/cjk.h
tar-1.29/gnu/argp.h
tar-1.29/gnu/argp-fmtstream.h
tar-1.29/gnu/argp-namefrob.h
tar-1.29/gnu/argp-version-etc.h
tar-1.29/gnu/bitrotate.h
tar-1.29/gnu/c-ctype.h
tar-1.29/gnu/c-strcase.h
tar-1.29/gnu/full-write.h
tar-1.29/gnu/gettext.h
tar-1.29/gnu/localcharset.h
tar-1.29/gnu/mbuiter.h
tar-1.29/gnu/progname.h
tar-1.29/gnu/se-context.in.h
tar-1.29/gnu/se-selinux.in.h
---------many more files follow-------------
Ou até combinado com o grep:
$ curl -sL -o- "http://ftp.gnu.org/gnu/tar/tar-latest.tar.gz" |tar -zt |grep '/src/.*\.h$'
tar-1.29/src/arith.h
tar-1.29/src/common.h
tar-1.29/src/tar.h
tar-1.29/src/xattrs.h
Considerando que sua pergunta fala sobre "extrair a lista de todos os arquivos de cabeçalho C" eu suponho que você precisa apenas de uma listagem como acima.
Caso você queira obter o conteúdo desses arquivos .h
, você pode usar algo assim para "descartar" o conteúdo da sua tela:
$ curl -sL -o- "http://ftp.gnu.org/gnu/tar/tar-latest.tar.gz" |tar -xzO --wildcards --no-anchored '*.h'
Dica: combine com |less
no final para facilitar a leitura.
Por fim, para torná-lo completo, como aconselhado por @don_crissti para extrair os arquivos '* .h' em sua unidade local em vez de descarregar a tela, você pode usar:
$ curl -sL -o- "http://ftp.gnu.org/gnu/tar/tar-latest.tar.gz" |tar -xzf - --wildcards --no-anchored '*.h'
Uma nova pasta tar-1.29
será criada em seu diretório de trabalho atual, incluindo todos os arquivos .h
.
$ ls -ld tar-1.29
drwxr-xr-x 7 root root 4096 Mar 24 01:48 tar-1.29
$ ls -l tar-1.29
total 20
drwxr-xr-x 3 root root 4096 Mar 24 01:48 build-aux
drwxr-xr-x 3 root root 4096 Mar 24 01:48 gnu
drwxr-xr-x 2 root root 4096 Mar 24 01:48 lib
drwxr-xr-x 2 root root 4096 Mar 24 01:48 src
drwxr-xr-x 2 root root 4096 Mar 24 01:48 tests