Хоча обидва розроблені так, щоб містити файли, що не належать до операційної системи, /optі /usr/localне призначені для того, щоб вони містили однаковий набір файлів.
/usr/local- це місце для встановлення файлів, побудованих адміністратором, як правило, за допомогою makeкоманди (наприклад, ./configure; make; make install). Ідея полягає у тому, щоб уникнути сутичок з файлами, що входять до складу операційної системи, які б або перезаписати, або перезаписати локальні в іншому випадку (наприклад, /usr/bin/fooце частина ОС, а /usr/local/bin/fooє локальною альтернативою).
Усі файли в розділі /usrдоступні між екземплярами ОС, хоча це рідко робиться в Linux. Це частина, де FHS трохи суперечлива, як /usrце визначено, лише для читання, але її /usr/local/binпотрібно читати і записувати для локальної установки програмного забезпечення, щоб досягти успіху. Стандарт файлової системи SVR4, який був основним джерелом натхнення FHS, рекомендує уникати /usr/localта використовувати /opt/localзамість цього, щоб подолати цю проблему.
/usr/localє спадщиною від оригінальної BSD. У той час, вихідний код /usr/binкоманд ОС були /usr/src/binі /usr/src/usr.bin, в той час як джерело локально розроблених команд був /usr/local/src, і їх виконавчі файли в /usr/local/bin. Поняття про упаковку (поза тарботами) не було.
З іншого боку, /optце каталог для встановлення нерозділених пакетів (тобто пакетів, які не входять до дистрибутиву Операційної системи, але надаються незалежним джерелом), кожен з яких має свій власний підкаталог. Вони вже склали цілі пакети, надані незалежним дистрибутором програмного забезпечення. На відміну від /usr/localматеріалів, ці пакунки дотримуються конвенцій каталогів (або, принаймні, повинні). Наприклад, someappвін буде встановлений у /opt/someapp, якщо одна з його команд буде /opt/someapp/bin/foo, його файл конфігурації буде /etc/opt/someapp/foo.conf, а його файли журналу /var/opt/someapp/logs/foo.access.
/usr/localце локальна версія/usrфайлової системи, тоді як/optє власником місця для різного вмісту .