Usando find en un archivo específico en $filepath :
if [ -n "$(find "$filepath" -prune -size +1000000c)" ]; then
printf '%s is strictly larger than 1 MB\n' "$filepath"
fi
Esto usa find para consultar el archivo específico en $filepath por su tamaño. Si el tamaño es superior a 1000000 bytes, find imprimirá la ruta del archivo, de lo contrario no generará nada. Los -n test es verdadero si la cadena tiene una longitud distinta de cero, lo que en este caso significa que find generó algo, lo que a su vez significa que el archivo tiene más de 1 MB.
No preguntaste sobre esto:Encontrar todos los archivos regulares que tienen más de 1 MB bajo algún $dirpath e imprimiendo un mensaje corto para cada uno:
find "$dirpath" -type f -size +1000000c \
-exec printf '%s is larger than 1 MB\n' {} +
Estas piezas de código deberían ser portátiles para cualquier Unix.
Tenga en cuenta también que usar < o > en una prueba probará si las dos cadenas involucradas se ordenan de una manera particular lexicográficamente. Estos operadores no hacen comparaciones numéricas. Para eso, usa -lt ("menor que"), -le ("menor o igual que"), -gt ("mayor que"), o -ge ("mayor o igual que"), -eq ("igual a"), o -ne ("no igual a"). Estos operadores hacen comparaciones de enteros.