両方のオペレーティングシステムに属していないファイルを含むように設計されており、一方で/optと/usr/local同じファイルのセットを含むように意図されていません。
/usr/local通常はmakeコマンド(例:)を使用して、管理者が作成したファイルをインストールする場所./configure; make; make installです。これは、オペレーティングシステムの一部であるファイルとの衝突を回避することです。これらのファイルは、ローカルのファイルを上書きまたは上書きします(たとえば、/usr/bin/fooOSの一部で/usr/local/bin/fooあり、ローカルの代替です)。
以下のすべてのファイル/usrはOSインスタンス間で共有可能ですが、これはLinuxではめったに行われません。これは、/usr読み取り専用であると定義されているように、FHSがわずかに矛盾する部分ですが、/usr/local/binソフトウェアのローカルインストールを成功させるには読み取り/書き込みが必要です。FHSの主なインスピレーションの源であったSVR4ファイルシステム標準は、この問題を回避するために/usr/local、/opt/local代わりに回避して使用することを推奨しています。
/usr/local元のBSDからの遺産です。当時、/usr/binOSコマンドのソースコードはとに/usr/src/binあり/usr/src/usr.bin、ローカルで開発されたコマンドのソースはに/usr/local/srcあり、そのバイナリはにありました/usr/local/bin。パッケージ化の概念はありませんでした(tarball以外)。
一方、/optバンドルされていないパッケージ(つまり、オペレーティングシステムの配布の一部ではないが、独立したソースによって提供されるパッケージ)をインストールするためのディレクトリであり、それぞれが独自のサブディレクトリにあります。これらは、独立したサードパーティのソフトウェアディストリビュータによって提供されるパッケージ全体が既に構築されています。/usr/localものとは異なり、これらのパッケージはディレクトリ規則に従います(または、少なくともそうすべきです)。たとえば、someappにインストールされ/opt/someapp、そのコマンドの1つが/opt/someapp/bin/foo、その構成ファイルがに、/etc/opt/someapp/foo.confログファイルがになり/var/opt/someapp/logs/foo.accessます。
               
              
/usr/localローカルバージョンであり、その他のもののプレースホルダーです。/usr/opt