I am installing p4v in /opt
, but /usr/bin
is on my path. Is it possible to create a soft or symbolic link for p4v from /opt
to /usr/bin
, so I can just type "p4v" since /usr/bin
is in my path?
-
1stackoverflow.com/questions/1951742/…– DanteAug 8, 2016 at 11:21
-
ln -s /path/to/file /path/to/symlink– Mr.Epic FailMar 11, 2022 at 10:07
8 Answers
See man ln
.
To create a symlink at /usr/bin/bar
which references the original file /opt/foo
, use:
ln -s /opt/foo /usr/bin/bar
You would need to apply the above command as root (i.e. with sudo
).
-
2I am using:
sudo ln –s /etc/apache2/sites-available/redmine /etc/apache2/sites-enabled/000-redmine
getting error:ln: target '/etc/apache2/sites-enabled/000-redmine' is not a directory
– RAJ ...Aug 4, 2012 at 7:29 -
1The Ubuntu documentation says " Creates hard links by default, symbolic links with --symbolic." Will the above solution create a symbolic link as asked by OP?– devMay 26, 2015 at 5:27
-
5I though César wanted to put his files in the /opt and /usr/bin to have the symbolic link, not other way around.– mishapNov 26, 2015 at 23:41
-
5@mishap is right as far as I'm concerned. It's the other way around. Dec 18, 2015 at 17:05
-
2@kevinmicke after your explanation finally realized that the explanation of the answer was stated in reverse order from the command, making my brain (and others') read it backwards– AndrewMar 7, 2018 at 21:00
The error is that you are writing the command wrong. The correct way is
ln -s /<full>/<path>/<to>/<file> /usr/local/bin
-
-
Thanks, I totally missed that I needed the absolute path to the linked file.– Andi RJun 14, 2019 at 8:58
If the 'p4v' executable is at /opt/bin/p4v, you can simply run:
sudo ln -s /opt/bin/p4v /usr/bin/p4v
sudo chmod ugo+x /usr/bin/p4v
It would be better to add /opt/bin (or wherever the executable is) to your path:
echo "export PATH=\$PATH:/opt/bin" >> ~/.profile
reset
Check the software location by this.
which application-name #replace for the application you are looking for
for example
which skype
output will be this.
/usr/bin/skype
To create the soft link. for example you want to create the soft link for skype
on your desktop
ln -s /usr/bin/skype ~/Desktop/
For more information about ln
.
man ln
or
ln --help
This template was more helpful for me than the above answers. Probably not more correct, just less obfuscated:
ln -s <path/to/real/file-or-folder> <symlink path>
Just replace the parts in <>
's
ln -s -n ./TargetDirectory ./Nickname
Note, this works if you both nodes are below you in the same tree. You can use relative notation
- -s command makes it a symbolic link
- -n makes it possible de create a folder-type symlink
-
1Welcome to askubuntu.com. In this case the
$
to indicate a command line prompt is a style choice, and not likely to be a problem. However bear in mind that including things in a code block other than the code and its output can cause confusion. Dec 12, 2017 at 0:42
If it is saying target is not a folder
, it means there are spaces in your folder names eg: New Folder
has a space
You need to edit the path and add a backslash \
after every space in the paths
eg:
ln -s /opt/bin /usr/var/New\ Folder
-
3This is not an answer to the OPs question. Please wait until you have enough reputation to add comments.– derHugoNov 9, 2017 at 5:59
I have found that it is easier to go to where you want the link to be and then create the link using sudo ln -s /path/to/source/file
, than doing ln -s target source
.
So in your case I would do cd /usr/bin
then sudo ln -s /opt/bin/pv4
. The other way has not been working in my case.