Se os números tiverem o mesmo número de dígitos, a ordem normal de classificação deverá ser preenchida, então poderíamos apenas preencher uma matriz com os nomes e pegar o último elemento
$ mkdir -p parentdir/{1,2,6,3}
$ A=(parentdir/*) # fill an array with the names
$ echo "${A[-1]}" # print the last member of the array
parentdir/6
$ echo "${A[-1]##*/}" # remove everything up to last /
6
Mas se eles tiverem números diferentes de dígitos, isso não funcionará (o pedido seria 1
, 13
, 2
, ...). Então, vamos encontrar o máximo manualmente:
$ mkdir -p parentdir/{1,2,6,3,13}
$ max=0; # assuming they're non-negative integers!
$ for x in parentdir/* ; do
n=${x##*/}; # take just the number so that comparisons work
[ "$n" -gt "$max" ] && max=$n
done
$ echo "$max"
13
O anterior é muito mais fácil que vale a pena considerar criar os nomes preenchidos com um comprimento fixo com zeros à esquerda, se possível.