Primeiro, faça não analisar ls
. Existem muitas formas confiáveis de obter nomes de arquivos, mas ls
não é um deles .
O seguinte usa o globbing do shell para gerar nomes de arquivos e passa uma lista nula separada deles para xargs
, que os executa através de cat
:
printf '%scat *
' * | xargs -0 cat
Eu entendo que o objetivo disso foi demonstrar arquivos- > xargs. Caso contrário, é claro, a menos que haja arquivos demais para caber em uma linha de comando, os itens acima podem ser substituídos por:
find . -maxdepth 1 -type f -print0 | xargs -0 cat
Sendo mais seletivo
Tanto ls
como printf '%s
exibirão todo o conteúdo de um diretório, incluindo seus subdiretórios. Se você quiser ser mais seletivo, digamos, incluindo arquivos regulares, mas não subdiretórios, como sugere cas, find
' *find
é uma ferramenta melhor:
find . -maxdepth 1 -type f -exec cat {} +
Ou:
printf '%scat *
' * | xargs -0 cat
man find
tem muitas opções úteis. Veja %code% para detalhes.