Can I add a shortcut to replace a path in Linux?

96,468

Solution 1

You can use the environment variable CDPATH for this. From the Bash man page:

CDPATH

The search path for the cd command. This is a colon-separated list of directories in which the shell looks for destination directories specified by the cd command. A sample value is ".:~:/usr".

In your case, you can set

export CDPATH=.:/user/something/somefolders

in ~/.bashrc, and then typing cd somewhere would take you to /user/something/somefolders/somewhere (assuming there's no directory named somewhere within the current directory).

Alternatively, if you don't want to refer to the folder somewhere by its real name, you could create a hidden directory that contains a symbolic link to /user/something/somefolders/somewhere with the name you want to use. It could also contain links to any other directories you frequently visit. Then set CDPATH to include the path to that hidden directory. Although note that with this method, if you cd somewhere and then cd .., you'll wind up in the hidden directory. That may or may not be an issue for you.

Solution 2

Two shortcuts I use all the time for things like this:

Aliases

alias somedir='cd /home/john/www/something/'

Then you can type somedir to go to that directory. Add these to your .bashrc.

Symbolic Links

ln -s /long/path/to/some/other/folder /shortcut

This will make a file at /shortcut which links to /long/path/to/some/other/folder. Then you can type cd /shortcut instead. The caveat of this is it fills up your root directory (or whichever directory you put the links in) pretty quick. I prefer aliases.

Solution 3

I tend to use the bash interactive search all the time. Try it. Invoke it with ctrl+r and start typing some part of your path, like somewhere. Probably your cd command will pop up. :)

Solution 4

Another thing you can do is to store the path in question in an environment variable. Add these lines to your ~/.profile file:

somedir=/user/something/somefolders/somewhere
export somedir

You can then access the directory with

cd "$somedir"

Solution 5

Look at the "alias" command.

In csh:

alias commandplace "cd /user/something/somefolders/somewhere"

In sh:

alias commandplace="cd /user/something/somefolders/somewhere"

But I like the symlink solution:

ln -s /user/something/somefolders/somewhere ~/commandplace 

Note: ln takes arguments in the same order as cp.

Share:
96,468

Related videos on Youtube

jordanvrtanoski
Author by

jordanvrtanoski

Updated on September 17, 2022

Comments

  • jordanvrtanoski
    jordanvrtanoski over 1 year

    For example, I always go to this path:

    /user/something/somefolders/somewhere

    but I don't want to type

    cd /user/something/somefolders/somewhere

    in the terminal all the time, can I have some short hand to do so? for example, can I do something like

    cd commandPlace

    to replace the path?

  • RoundPi
    RoundPi over 11 years
    nice one John !
  • Elias
    Elias almost 11 years
    it's supposed to be ln -s /long/path/to/some/other/folder /shortcut when I did it the other way around it created the shortcut in the place I wanted to create the link to. I submitted an edit to make it updated.
  • BdN3504
    BdN3504 almost 10 years
    This is by far the best solution imo because you can use the variable for any command. If you assign an alias then that alias is always tied to a command like cd...
  • RolfBly
    RolfBly over 7 years
    How about a directory in the root with a short name, e.g. /sl and create shortcuts in there? (ie ln -s /long/path/to/some/other/folder /sl/shortcut? No clutter in the root, plus a visual reminder that your prompt's path is a symlink.
  • inspirednz
    inspirednz about 6 years
    This is the solution I was hoping existed, and was looking for. For the reasons BdN3504 has stated.