Assumindo que -exec
corresponde ao que você pretende fazer.
(A opção -exec
executa um arquivo não lido)
A solução simples para imprimir os nomes dos arquivos que correspondem às opções de localização é:
find foldername -size +1k -name \*.txt -print
Se você precisar que os nomes sejam atribuídos a uma variável, você precisa de mais.
Para poder lidar com espaços em nomes de arquivos que resultam do comando find
, a opção -print0
é a solução usual:
find foldername -size +1k -name \*.txt -print0
No entanto, para ser capaz de ler os resultados em uma variável bash, não é fácil.
Há uma longa explicação em esta excelente página wiki do Greg
#!/bin/bash
unset a
while IFS= read -r -d $'find foldername -size +1k -name \*.txt -print
' file; do
a+=( "$file" ) # or however you want to process each file
done < <(find foldername -size +1k -name \*.txt -print0)
printf 'filename=%s\n' "${a[@]}"