//View Tip #769
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

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
}


View Comments »



Comments 

Add your comment

CAPTCHA

No HTML allowed. URLs will be linked with nofollow attribute. Whitespace is preserved.

No Comments

Home Latest Browse Top 25 Random Hall Of Fame Contact Submit