Inodes are associated with precisely one directory entry at a time. However, with hard links it is possible to associate multiple directory entries with a single inode. To create a hard link use ln command as follows:
# ln /root/file1 /root/file2
# ls -l
Above commands create a link to file1.
Symbolic links refer to:
$ln -s /path/to/file1.txt /path/to/file2.txt
$ls -ali
Above command will create a symbolic link to file1.txt.
$ln -s resolv.conf alink.conf
Sample output:
# ln /root/file1 /root/file2
# ls -l
Above commands create a link to file1.
Symbolic links refer to:
A symbolic path indicating the abstract location of another file.Hard links refer to:
The specific location of physical data.
Hard link vs. Soft link in Linux or UNIX
- Hard links cannot links directories
- Cannot cross file system boundaries
- To create links between directories
- Can cross file system boundaries
- Symbolic links are not updated.
- Hard links always refer to the source, even if moved or removed.
How do I create symbolic link?
You can create symbolic link with ln command:$ln -s /path/to/file1.txt /path/to/file2.txt
$ls -ali
Above command will create a symbolic link to file1.txt.
Task: Symbolic link creation and deletion
Let us create a directory called foo, enter:
$mkdir foo
$cd foo
Copy /etc/resolv.conf file, enter:
Copy /etc/resolv.conf file, enter:
$cp /etc/resolv.conf .
View inode number, enter:
View inode number, enter:
$ls -aliSample output:total 152 1048600 drwxr-xr-x 2 ram ram 4096 2011-07-20 10:19 . 1015809 drwxrwxrwt 220 root root 143360 2011-07-20 10:19 .. 1048601 -rwxr-xr-x 1 ram ram 259 2011-07-20 10:19 resolv.confNow create soft link to resolv.conf, enter:
$ln -s resolv.conf alink.conf
Sample output:
total 152 1048600 drwxr-xr-x 2 ram ram 4096 2011-07-20 10:24 . 1015809 drwxrwxrwt 220 root root 143360 2011-07-20 10:19 .. 1048602 lrwxrwxrwx 1 ram ram 11 2011-07-20 10:24 alink.conf -> resolv.conf 1048601 -rwxr-xr-x 1 ram ram 259 2011-07-20 10:19 resolv.conf
The reference count of the directory has not changed (total 152). Our symbolic (soft) link is stored in a different inode than the text file (1048602). The information stored in resolv.conf is accessible through the alink.conf file. If we delete the text file resolv.conf, alink.conf becomes a broken link and our data is lost:
$rm resolv.conf
$ls -ali
If alink.conf was a hard link, our data would still be accessible through alink.conf. Also, if you delete the soft link itself, the data would still be there.
If alink.conf was a hard link, our data would still be accessible through alink.conf. Also, if you delete the soft link itself, the data would still be there.
No comments:
Post a Comment