HARD LINK (Only Files) vs SOFT LINK (Files or Directories) vs BIND (HARD LINK for Directories)

 ![VIEW THIS IMAGE BEFORE READING POST](https://www.freesoftwareservers.com/wp-content/uploads/2015/08/Bind-Hardlink-SoftLink.png)

*While daxelrod's answer explains the question well, I thought that the picture in this case made a big difference, especially to beginners who don't understand inodes and complicated Linux jargon quite yet.*

*Think of this, if you "deleted" everything from your drive, you could run software to restore the data, because the 1's and 0's are still there, you just deleted all the Hard Links. Recovery Software's purpose is to rebuild the Hard Links to make sense of the 0's and 1's*


I read a great "one liner" that made this all make sense and I wanted to share!

All files in Linux are "Hard Links" to the 0's and 1's on the disk. When you create a data (0's & 1's) the OS creates a Hard Link in the File Tree to reference that spot on the hard disk. 


#Create HARD LINK 2 and delete HARD LINK 1 *Original File*:

You may create another hard link and delete the original file, and you still have access to the newly created hard link.

#Delete FILE(HARD LINK 1) that is SOFT LINKed to:

If you deleted the HARD LINK 1, do you think the SOFT LINK would work? No, The OS will report back that the HARD LINK 1 does not exist. 

#Delete SOFT LINK to HARD LINK:

In reverse, if you delete the SOFT LINK, will either HARD LINK work? Yes. As long as the OS has one HARD LINK *File* it will report that the fill has not been deleted.

BIND -- BIND is a HARD LINK for Directories, You CAN NOT HARD LINK DIRECTORIES.

While soft and hard links use 

 ln 

bind uses

 mount

and can be configured via etc/fstab.

Command line example of binding HARD LINK 1 and HARD LINK 2 

mount -B "HARD LINK 1" "HARD LINK 2"

mount -B SourceDirectory DestinationDirectory

mount -B /home/uploads /ftp/uploads

Now any changes to /home/uploads are reflected in /ftp/uploads

#Delete HARD LINK 2 BIND

What Happens in Linux if you try to mount something and the mount point does not exist? It fails. So basically you will get a mount error, but HARD LINK 1 will be fine.

#Delete HARD LINK 1 (Source Dir) BINDed to HARD LINK 2 (Mount Point/Destination Dir).

In this case, you have deleted the source directory and the destination directory will fail to mount. Like trying to mount a drive that doesn't exist.

Bind is when you "Bind" two directories. What it means is any change to the Original HARD LINK (Source) Will show in the Mount Point/Destination of the Bind.