digamos ls
devuelve file1 file2 dir1 dire2 ...
, quiero imprimir you have file1 file2 dir1 dire2 ... in currnent folder
.
¿Cómo puedo hacer eso?ls | xargs -i echo 'you have {} in current folder'
impresiones
you have file1 in current folder you have file2 in current folder you have dir1 in current folder you have dir2 in current folder you have xxx in current folder
también he probadols |xargs printf 'you have %s %s %s %s in current folder'
pero no pudo hacerlo funcionar. ya que el número de archivos es indefinido. ¿Cuál es la sintaxis correcta para printf
? en este caso?
ls | xargs printf 'you have [email protected] in current folder'
es lo más cercano que puedo conseguir, pero no funciona.
Respuesta aceptada:
Lo siguiente funcionará, pero probablemente tenga algunas implicaciones de seguridad negativas:
echo "You have" * "in current folder"
En mi opinión, una mejor manera, pero requerir dos líneas sería:
files=(*)
echo "You have ${files[@]} in curent folder"
Con impresión:
files=(*)
printf '%s ' "You have ${files[@]} in current folder"