Ejecute un comando con parámetro cada nombre de archivo en una carpeta

Ejecute un comando con parámetro cada nombre de archivo en una carpeta

Me gustaría ejecutar un comando, llamémoslo abc y agreguemos como parámetro cada nombre de archivo en la carpeta actual. ¿Cómo podría hacer esto en C Shell (u otro lenguaje de programación)?

Respuesta1

Usando csho tcsh, esto iteraría sobre todos los archivos y directorios en el directorio actual. He usado comillas alrededor de la $isustitución de variables en caso de que algunos de los nombres tengan espacios.

foreach i (*)
   abc "$i"
end

Si desea obtener sólo los archivos, no los directorios, utilice la -fprueba. Aquí he usado la ifdeclaración abreviada del shell C.

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

Respuesta2

Buscarxargos. Si su shell se parece en algo al mío, lo siguiente debería funcionar bien:

find . -type f -maxdepth 1 | xargs abc

Si le preocupan los espacios en los nombres de los archivos, consulte el comentario de Daniel Andersson a continuación.

información relacionada