zsh -c 'zmodload zsh/stat
[[ $(zstat -N +size -- *(.om[1,4])) =~ $'\''(.*)\n\1\n\1\n\1'\'' ]]' && exit
Será encerrado se todos os 4 arquivos regulares não ocultos mais recentes no diretório atual tiverem o mesmo tamanho.
Em um sistema GNU, você também pode fazer:
find . -maxdepth 1 ! -name '.*' -type f -printf '%T@ %s\n' |
sort -rn |
awk 'NR == 1 {v = $0}; v != $0 {exit}; NR == 4 {exit 1}' || exit
POSIXly:
ls -tnq -- "$dir_path" |
awk '!/^-/ {next}
n++ == 0 {v = $5}
v != $5 {exit}
n == 4 {exit 1}' || exit
Se como em sua própria abordagem, em vez dos 4 mais novos, você quer os últimos 4 (independentemente de serem arquivos regulares ou links simbólicos ou sockets ...) na ls
output (que é uma ordem alfabética lista ordenada), você pode fazer (ainda POSIXly):
ls -rnq -- "$dir_path" |
awk 'NR == 1 {next}
NR == 2 {v = $5}
v != $5 {exit}
NR > 4 {exit 1}' || exit