com bash
4.4 +:
readarray -td '' files < <(find . -type f -print0 | head -zn 20)
for i in "${files[@]}"; do
something with "$i"
done
Com versões anteriores do bash:
files=()
while IFS= read -rd '' file; do
files+=("$file")
done < <(find . -print0 | head -zn 20)
for i...
Aqui, é mais simples usar zsh
:
files=(**/*(D.[1,20]))
for i ($files) something with $i
(pelo menos a lista de arquivos será classificada de forma que o primeiro 20 faça mais sentido)
Veja Por que o loop está dando resultado em má prática de saída? para outras formas de processar (ou não) find
' s saída.