Execute um comando com parâmetro para cada nome de arquivo em uma pasta

Execute um comando com parâmetro para cada nome de arquivo em uma pasta

Gostaria de executar um comando, vamos chamá-lo de abc e adicionar como parâmetro cada nome de arquivo da pasta atual. Como eu poderia fazer isso em C Shell (ou outra linguagem de script)?

Responder1

Usando cshou tcsh, isso iria iterar sobre todos os arquivos e diretórios no diretório atual. Usei aspas na $isubstituição de variáveis, caso alguns dos nomes tenham espaços.

foreach i (*)
   abc "$i"
end

Se você quiser obter apenas os arquivos, não os diretórios, use o -ftest. Aqui usei a ifinstrução abreviada do shell C.

foreach i (*)
   if (-f "$i") abc "$i"
end

Responder2

Olho para cimaxargs. Se o seu shell for parecido com o meu, o seguinte deve funcionar bem:

find . -type f -maxdepth 1 | xargs abc

Se você estiver preocupado com espaços nos nomes dos arquivos, veja o comentário de Daniel Andersson abaixo.

informação relacionada