7.2. Creating Directories

#### Cross-Compiled Linux From Scratch - Version 1.0.0rc2-x86_64-Multilib

### Chapter 7. If You Are Going to Boot

- Prev

  If You Are Going to Boot

- Next

  Creating Essential Symlinks

- Up.
- Home

# 7.2. Creating Directories

It is time to create some structure in the CLFS file system. Create a standard directory tree by issuing the following commands:

    mkdir -pv ${CLFS}/{bin,boot,dev,{etc/,}opt,home,lib{,64},mnt}
    mkdir -pv ${CLFS}/{proc,media/{floppy,cdrom},sbin,srv,sys}
    mkdir -pv ${CLFS}/var/{lock,log,mail,run,spool}
    mkdir -pv ${CLFS}/var/{opt,cache,lib{,64}/{misc,locate},local}
    install -dv ${CLFS}/root -m 0750
    install -dv ${CLFS}{/var,}/tmp -m 1777
    mkdir -pv ${CLFS}/usr/{,local/}{bin,include,lib{,64},sbin,src}
    mkdir -pv ${CLFS}/usr/{,local/}share/{doc,info,locale,man}
    mkdir -pv ${CLFS}/usr/{,local/}share/{misc,terminfo,zoneinfo}
    mkdir -pv ${CLFS}/usr/{,local/}share/man/man{1,2,3,4,5,6,7,8}
    for dir in /usr{,/local}; do
      ln -sv share/{man,doc,info} $dir
    done
    install -dv ${CLFS}/usr/lib/locale
    ln -sv ../lib/locale ${CLFS}/usr/lib64

Directories are, by default, created with permission mode 755, but this is not desirable for all directories. In the commands above, two changes are made—one to the home directory of user `root`, and another to the directories for temporary files.

The first mode change ensures that not just anybody can enter the `/root` directory—the same as a normal user would do with his or her home directory. The second mode change makes sure that any user can write to the `/tmp` and `/var/tmp` directories, but cannot remove another user's files from them. The latter is prohibited by the so-called “sticky bit,” the highest bit (1) in the 1777 bit mask.

## 7.2.1. FHS Compliance Note

The directory tree is based on the Filesystem Hierarchy Standard (FHS) (available at http://www.pathname.com/fhs/). In addition to the tree created above, this standard stipulates the existence of `/usr/local/games` and `/usr/share/games`. The FHS is not precise as to the structure of the `/usr/local/share` subdirectory, so we create only the directories that are needed. However, feel free to create these directories if you prefer to conform more strictly to the FHS.

- Prev

  If You Are Going to Boot

- Next

  Creating Essential Symlinks

- Up.
- Home.