Reputation: 11285
What I'm trying to do is find the current working directory and save it into a variable, so that I can run export PATH=$PATH:currentdir+somethingelse
. I'm not entirely sure if they have a variable that contains cwd by default.
How do I save the current directory in variable using Bash?
Upvotes: 184
Views: 282559
Reputation: 1333
With hint from @gerardw ans I added the following in .bashrc
, this has persistence also:
function mark {
cur=`pwd`;
echo "export cur_project=$cur" > ~/.cur_project
. ~/.cur_project
}
. ~/.cur_project
alias curp='cd $cur_project'
So cur_project
variable is available in .bashrc
or bash command any time.
This alias curp='cd $cur_project'
is just in case someone wants to switch to current project any time.
Upvotes: 0
Reputation: 976
On a BASH shell, you can very simply run:
export PATH=$PATH:`pwd`/somethingelse
No need to save the current working directory into a variable...
Upvotes: 4
Reputation: 2955
Similar to solution of mark
with some checking of variables. Also I prefer not to use $variable
but rather the same string I saved it under
save your folder/directory using save dir sdir myproject
and go back to that folder using goto dir gdir myproject
in addition checkout the workings of native pushd and popd
they will save the current folder and this is handy for going back and forth. In this case you can also use popd
after gdir myproject
and go back again
# Save the current folder using sdir yourhandle to a variable you can later access the same folder fast using gdir yourhandle
function sdir {
[[ ! -z "$1" ]] && export __d__$1="`pwd`";
}
function gdir {
[[ ! -z "$1" ]] && cd "${!1}";
}
another handy trick is to combine the two pushd/popd and sdir and gdir wher you replace the cd in the goto dir function in pushd. This enables you to also fly back to your previous folder when making the jump to the saved folder.
# Save the current folder using sdir yourhandle to a variable you can later access the same folder fast using gdir yourhandle
function sdir {
[[ ! -z "$1" ]] && export __d__$1="`pwd`";
}
function gdir {
[[ ! -z "$1" ]] && pushd "${!1}";
}
Upvotes: 0
Reputation: 651
current working directory variable ie full path /home/dev/other
dir=$PWD
print the full path
echo $dir
Upvotes: 15
Reputation: 6778
for a relative answer, use .
test with:
$ myDir=.
$ ls $myDir
$ cd /
$ ls $myDir
The first ls
will show you everything in the current directory, the second will show you everything in the root directory (/
).
Upvotes: 6
Reputation: 160
You can use shell in-build variable PWD
, like this:
export PATH=$PATH:$PWD+somethingelse
Upvotes: 0
Reputation: 6330
I have the following in my .bash_profile:
function mark {
export $1=`pwd`;
}
so anytime I want to remember a directory, I can just type, e.g. mark there .
Then when I want to go back to that location, I just type cd $there
Upvotes: 38
Reputation: 47269
This saves the absolute path of the current working directory to the variable cwd
:
cwd=$(pwd)
In your case you can just do:
export PATH=$PATH:$(pwd)+somethingelse
Upvotes: 286
Reputation: 530862
Your assignment has an extra $
:
export PATH=$PATH:${PWD}:/foo/bar
Upvotes: 6