//View Tip #769
» Find last modified files on a filesystem
» Get latest stable version of the Linux kernel
» Bash terminal size
» Find and replace with backup
Similar Tips
» Simple password generator» Find last modified files on a filesystem
» Get latest stable version of the Linux kernel
» Bash terminal size
» Find and replace with backup
Latest tips by RSS
Click here to subscribe
Follow Shell-Fu on Twitter
Click here to follow
Follow Shell-Fu on identi.ca
Click here to follow
Tip 550 gives a script for a '..' command which will go up n directory levels, however the version there messes up your previous directory so "cd -" will not work. The version below fixes this problem:
.. v1.1
Usage .. [n]
Go up n-levels.
i.e.: .. 3 will go up 3 levels
Another possible task is to go up several levels until we find the directory we need. The function below will do this:
... v0.1
Usage ... Thing/Some
Go up until you encounter Thing/Some, then go there
i.e.: I'm in /usr/share/X11
... src will go up to /usr, then change to /usr/src
.. v1.1
Usage .. [n]
Go up n-levels.
i.e.: .. 3 will go up 3 levels
function .. (){
local arg=${1:-1};
local dir=""
while [ $arg -gt 0 ]; do
dir="../$dir"
arg=$(($arg - 1));
done
cd $dir >&/dev/null
}
Another possible task is to go up several levels until we find the directory we need. The function below will do this:
... v0.1
Usage ... Thing/Some
Go up until you encounter Thing/Some, then go there
i.e.: I'm in /usr/share/X11
... src will go up to /usr, then change to /usr/src
function ... (){
if [ -z "$1" ]; then
return
fi
local maxlvl=16
local dir=$1
while [ $maxlvl -gt 0 ]; do
dir="../$dir"
maxlvl=$(($maxlvl - 1));
if [ -d "$dir" ]; then
cd $dir >&/dev/null
fi
done
}Comments
Add your comment
No Comments

