LPI Linux Certification/Create And Change Hard And Symbolic Links
Detailed Objectives[edit | edit source]
(LPIC-1 Version 5.0)
Candidates should be able to create and manage hard and symbolic links to a file.
Key Knowledge Areas:
- Create links.
- Identify hard and/or softlinks.
- Copying versus linking files.
- Use links to support system administration tasks.
The following is a partial list of the used files, terms and utilities:
Links[edit | edit source]
Use link when: You want to create a pathname to a file. Set a shorter or fixed pathname to a file.
To link one file to another, use ln:
ln [options] filename linkname ln [options] filename linkdirectory
- -f force: clobber existing link
- -s symbolic link
The default links are hard links (ln without an option). A hard link can only be created to an existing file on the same physical device, after creation no visible association can be displayed between a link name and a file name.
Symbolic links are like shortcuts in Windows, in the sense that the file may be removed but the link will remain (although useless). Unlike in Windows however, a symbolic link can be created on a file that doesn’t exist yet. The association between the link name and the file name can be viewed with the ls command.
Linking to a file[edit | edit source]
The symbolic and hard link can be displayed with ls -l. Symbolic link are indicated with an arrow: link_name->real_filename.
$ ls -l /dev/midi lrwxrwxrwx 1 root root 6 Jul 4 21:50 /dev/midi -> midi00
Hard links are indicated with the number of links counter (3-1=2 in this case).
$ ls -l readme -rwxrwxrwx 3 yann users 677 Jul 4 21:50 readme
When removing a link name, use rm. Only the link will be removed not the linked file.
Exercises[edit | edit source]
- Create a directory etc and bin in your home directory.
- Copy all the files in recursive mode from /etc to your etc directory and do the same for /bin to bin.
- In your local etc directory rename all files *.conf by *.conf.bak
- Create in your home directory a symbolic link called dir that points to your local bin/ls. Check if dir do execute ls.
- Remove the dir link. Is bin/ls still there?