How to make a folder in Linux or Unix

I am a new Linux user. How do I make a folder in Linux or Unix system using the CLI?

You need to use the mkdir command to create new directories or folders in Linux or Unix-like system. The syntax is:

mkdir folderName
mkdir [option] folderName

This page shows you how to create new folders and directories on Linux or Unix-like system using the command line option.

How to create a new folder named foo

Open the Terminal app and type the following command:
mkdir foo
To see directory listing use the ls command:
ls -l

You can simultaneously create any number of folders/directories:
mkdir dir1 dir2 dir3 dir_4
Verify it:
ls -l

Fig.01: How to create Folders/Directories In Linux/Unix with the mkdir command

Let us try to understand the following line:

drwxr-xr-x 2 vivek vivek  4096 Aug  7 20:57 dir_4
  1. drwxr-xr-x – The file mode (see below for file mode).
  2. 2 – Number of links
  3. vivek – The owner name
  4. vivek – The group name
  5. 4096 – The number of bytes in the file
  6. Aug 7 20:57 – The date when the file was last modified
  7. dir_4 – File/dir name path

More on file mode

The entry type character describes (the first character drwxr-xr-x) the type of file, as follows:

  1. - : Regular file.
  2. b : Block special file.
  3. c : Character special file.
  4. d : Directory.
  5. l : Symbolic link.
  6. p : FIFO.
  7. s : Socket.
  8. w : Whiteout.

So basically d character in above entry tell us that it is a directory/folder. The next three fields are three characters ach: owner permissions, group permissions, and other permissions. Each field has three character positions:

	   1.	If r, the file is readable; if -, it is	not readable.
	   2.	If w, the file is writable; if -, it is	not writable.
	   3.	The first of the following that	applies:
		      S	    If in the owner permissions, the file is not exe-
			    cutable and	set-user-ID mode is set.  If in	the
			    group permissions, the file	is not executable and
			    set-group-ID mode is set.
		      s	    If in the owner permissions, the file is exe-
			    cutable and	set-user-ID mode is set.  If in	the
			    group permissions, the file	is executable and set-
			    group-ID mode is set.
		      x	    The	file is	executable or the directory is search-
		      -	    The	file is	neither	readable, writable, exe-
			    cutable, nor set-user-ID nor set-group-ID mode,
			    nor	sticky.	 (See below.)
		These next two apply only to the third character in the	last
		group (other permissions).
		      T	    The	sticky bit is set (mode	1000), but not execute
			    or search permission.  (See	chmod(1) or
		      t	    The	sticky bit is set (mode	1000), and is search-
			    able or executable.	 (See chmod(1) or sticky(7).)

How to create a new directory named bar

Open the Terminal app and type the following command but pass the -v option to get visual confirmation about your folder/directory name:
mkdir -v foo
Sample outputs:

mkdir: created directory 'foo'

How to make parent folder if needed

The syntax is:
mkdir -p dir1/dir2
mkdir -p parent/child
mkdir -p pictures/vacations
ls -l
ls -l pictures

How to make a folder/directory and set permissions on it

New directories are by default created with the read, write and execute permissions. Pass the -m option to directory to set the the permissions of new directories:
mkdir -m {permissions} {dirName}
mkdir -m 777 delta
ls -l

To create a directory named delta for which all three types of permissions were enabled for all users, the sequence 777 would be added after the -m as above. More information about mkdir can be obtained from the mkdir man page:
man mkdir
mkdir --help
Sample outputs:

Usage: mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.
Mandatory arguments to long options are mandatory for short options too.
  -m, --mode=MODE   set file mode (as in chmod), not a=rwx - umask
  -p, --parents     no error if existing, make parent directories as needed
  -v, --verbose     print a message for each created directory
  -Z                   set SELinux security context of each created directory
                         to the default type
      --context[=CTX]  like -Z, or if CTX is specified then set the SELinux
                         or SMACK security context to CTX
      --help     display this help and exit
      --version  output version information and exit

To delete the directory, use the rmdir command/rm command.

Posted by: SXI ADMIN

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.


Start your Bitcoin Exchange with our Software

Start your Bitcoin Exchange with our Software Setup your white label bitcoin exchange right away. Or create your own cryptocurrency using...

How to KVM, QEMU start or stop virtual machine from command line (CLI)

KVM or Kernel Based Virtual Machine is a popular virtualization technology. It allows you to run virtual guest machines over a host machine. To start...

How to Docker backup Saving and restoring your volumes

Running a Docker volume backup First, we spin up a temporary container, and we mount the backup folder and the target Docker volume to this container....