Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ======================================================================
- # A replacement for the built-in cd command which understands multiple
- # dots. For example:
- #
- # cd ... # Up 2 levels
- # cd .... # Up 3 levels
- # cd ..... # Up 4 levels
- # ======================================================================
- function cd() {
- if [[ "$1" =~ ^\.\.\.+$ ]]
- then
- # Case: The argument contains 3 or more dots and no other chars
- local levels=${1/./} # How many levels to go up
- local destination=. # The final destination
- # Each time we go through the loop, we go up one level and
- # remove one dot from levels
- while [[ -n $levels ]]
- do
- destination=$destination/..
- levels=${levels/./}
- done
- cd $destination
- else
- # If the argument does not contain 3 or more dots, we will treat
- # it as a regular case
- builtin cd "$@"
- fi
- ls # Nice to have
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement