Al procesar la ls -n
salida, como alternativa a las matrices de shell poco portátiles, puede usar los argumentos posicionales, que forman la única matriz y son las únicas variables locales en la shell estándar. Envuelva la sobrescritura de los argumentos posicionales en una función para preservar los argumentos originales de su script o función.
getsize() { set -- $(ls -dn "$1") && echo $5; }
getsize FILE
Esto divide la salida de ln -dn
según IFS
la configuración actual de la variable de entorno, la asigna a los argumentos posicionales y se hace eco del quinto. El -d
asegura que los directorios se manejen correctamente y -n
asegura que los nombres de usuarios y grupos no necesitan ser resueltos, a diferencia de con -l
. Además, los nombres de usuarios y grupos que contienen espacios en blanco podrían, en teoría, romper la estructura de línea esperada; por lo general, no se permiten, pero esta posibilidad aún hace que el programador se detenga y piense.