Você pode adaptar a solução original para ler arquivos até encontrar um que não esteja excluído:
while IFS= read -r -d '' line
do
file="${line#* }"
if [ "$file" = './my-excluded-directory' ]
then
continue
fi
[do stuff with $file]
break
done < <(find . -maxdepth 1 -type d -printf '%T@ %pIFS= read -r -d '' < <(find . -maxdepth 1 -type d \( -name 'my-excluded-directory' -prune -false \) -o -printf '%T@ %pwhile IFS= read -r -d '' line
do
file="${line#* }"
if [ "$file" = './my-excluded-directory' ]
then
continue
fi
[do stuff with $file]
break
done < <(find . -maxdepth 1 -type d -printf '%T@ %pIFS= read -r -d '' < <(find . -maxdepth 1 -type d \( -name 'my-excluded-directory' -prune -false \) -o -printf '%T@ %p%pre%' | sort -z -n)
file="${REPLY#* }"
# do something with $file here
' | sort -z -n)
' | sort -z -n)
file="${REPLY#* }"
# do something with $file here
' | sort -z -n)
( -d ''
é equivalente ao original, porque você não pode ter caracteres NUL em strings.)
read
ing uma longa lista é lenta, e mosvy está certo que você pode fazer a filtragem com uma sintaxe find
bastante desagradável: