Si bien ambos están diseñados para contener archivos que no pertenecen al sistema operativo, /opty /usr/localno están destinados a contener el mismo conjunto de archivos.
/usr/locales un lugar para instalar archivos creados por el administrador, generalmente mediante el makecomando (por ejemplo, ./configure; make; make install). La idea es evitar conflictos con los archivos que forman parte del sistema operativo, que de lo contrario se sobrescribirían o sobrescribirían los locales (por ejemplo, /usr/bin/fooes parte del sistema operativo mientras que /usr/local/bin/fooes una alternativa local).
Todos los archivos debajo se /usrpueden compartir entre instancias del sistema operativo, aunque esto rara vez se hace con Linux. Esta es una parte en la que el FHS es ligeramente contradictorio, ya que /usrse define como de solo lectura, pero /usr/local/bindebe ser de lectura y escritura para que la instalación local de software tenga éxito. El estándar del sistema de archivos SVR4, que fue la principal fuente de inspiración del FHS, recomienda evitar /usr/localy usar /opt/localpara superar este problema.
/usr/locales un legado del BSD original. En ese momento, el código fuente de los /usr/bincomandos del sistema operativo estaba en /usr/src/biny /usr/src/usr.bin, mientras que la fuente de los comandos desarrollados localmente estaba en /usr/local/src, y sus binarios en /usr/local/bin. No había noción de empaque (fuera de las bolas de alquitrán).
Por otro lado, /optes un directorio para instalar paquetes desagregados (es decir, paquetes que no forman parte de la distribución del sistema operativo, sino que son proporcionados por una fuente independiente), cada uno en su propio subdirectorio. Ya están construidos paquetes completos proporcionados por un distribuidor de software independiente de terceros. A diferencia de las /usr/localcosas, estos paquetes siguen las convenciones de directorio (o al menos deberían). Por ejemplo, someappse instalaría /opt/someapp, con uno de sus comandos /opt/someapp/bin/foo, su archivo de configuración /etc/opt/someapp/foo.confy sus archivos de registro /var/opt/someapp/logs/foo.access.
/usr/locales una versión local del/usrsistema de archivos, mientras que/optes un marcador de posición para cosas misceláneas.