You can create links to non-existent file or directory How would you know if the link points to file or a directory? You cannot know that until you follow the path and access the target file itself. rw-r-r- 1 abhishek abhishek 163 Jul 2 10:04 newdir/test_dir/prog.py Does it link to a file or a directory? You may not know! For example, I am using touch command on the soft link and you’ll notice that it changes the timestamp of the target file. Now if I use this link to change the content or the attributes, the same will be reflected in the target file. To refresh your memory, – means file, and d means directory. Notice the l (it’s L, not one) at the beginning of the line? If you are familiar with the file permissions in Linux, you would know that the ‘l’ signifies link and thus it tells you that this file is actually a link. Here are the attributes of the newly created link: lrwxrwxrwx 1 abhishek abhishek 23 Jul 2 08:51 link_prog -> newdir/test_dir/prog.py Now, I’ll create a soft link to this file in my present directory: ln -s newdir/test_dir/prog.py link_prog It has the following attributes: -rw-r-r- 1 abhishek abhishek 163 Apr 13 15:07 newdir/test_dir/prog.py I have a file prog.py in newdir/test_dir. You can make changes to the target file through the links. You access the target file by accessing the link. ![]() That’s the whole purpose of the links after all. Changes made to link are reflected in the original file Symbolic links could be confusing at times therefore you should keep note of a few things. Things to keep in mind about symbolic links If you want to list symbolic links using the find command, you can use the -type l option. There are other ways to follow a soft link to its source file but realpath is the easiest. ![]() To know which real file the link actually points to, use the realpath command: realpath link_name ![]() I’ll explain the difference between soft links and hard links in a different article. If you don’t use it, it will create a hard link. It determines that the link is soft link. To create a symbolic link to target file from link name, you can use the ln command with -s option like this: ln -s target_file link_name Now that you know a little about symbolic links, let’s see how to create them. They are heavily used in linking libraries in Linux. They provide quick access to long and confusing directory paths. ![]() Symbolic links offer a convenient way to organize and share files. In most Linux distributions, the links are displayed in a different color than the rest of the entries so that you can distinguish the links from the regular files and directories. If you use the ls command with option -l, this is what a symbolic link looks like: lrwxrwxrwx 1 abhishek abhishek 23 Jul 2 08:51 link_prog -> newdir/test_dir/prog.py Changes performed on the content of the link file change the content of the actual target file. If you try to access the symbolic link, you actually access the target file to which the symlink points to. Creating symbolic link is like creating alias to an actual file. You can re-enable it after the symlink is set up.What is Symbolic link in Linux and why is it used?Ī symbolic link, also known as a symlink or a soft link, is a special type of file that simply points to another file or directory just like shortcuts in Windows. if you want to have /Users pointing to another disk drive), you need to disable System Integrity Protection. To create a symlink to replace a system directory (e.g. Lrwxr-xr-x 1 user staff 11 Feb 1 17:05 Pictures ->. The path to the symlink is optional if omitted, ln defaults to making a link with the same name as the destination, in the current directory: $ cd ~/Documents Lrwxr-xr-x 1 grgarside staff 8 28 Jan 18:44 symlink -> originalįor more information about ln(1) see the man page. rw-r-r- 1 grgarside staff 8 28 Jan 18:44 original │ │ ┌── the optional path to the intended symlink
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |