//View Tip #769
Similar Tips
» Disable bash history
» Deleting whole words on a bash command line
» Change extension on a group of files using only bash builtins an
» Find occurrences of a string in a large code base without firing
» Manipulate Bash sockets using /dev/tcp


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
    arg=$(($arg - 1));
  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
  local maxlvl=16
  local dir=$1
  while [ $maxlvl -gt 0 ]; do
      maxlvl=$(($maxlvl - 1));
      if [ -d "$dir" ]; then 
        cd $dir >&/dev/null

View Comments »


Add your comment

Comments are currently disabled
No Comments

Home Latest Browse Top 25 Random Hall Of Fame Contact Submit