Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- alias c='clear'
- alias ..='cd ../'
- alias ~="cd ~/"
- alias ic='ping google.com'
- alias x='exit'
- alias lsd='ls -d */'
- alias svnlog='svn log -v --limit 6 | less'
- alias fnd='find ./ -name '
- mkcd() { mkdir "$1" && cd "$1"; }
- up() {
- #======================================================================
- # Taken from Reddit user sbicknel
- # modified to search by name
- # move up the directory tree
- # usage: up [N]
- # N is an integer (defaults to 1)
- #
- # silently exits if non-numeric input given
- # translates signed integers to absolute values
- # ignores all but the first parameter
- #
- # exit codes:
- # 0: success
- # 1: invalid input
- # 2: unable to change directory
- # 3: No matching directory found
- # 255: nothing to do
- #======================================================================
- declare targetDir="$PWD" # new working directory starts from the current directory
- # convert parameter to an absolute value, if possible, or return error code
- number_re='^[0-9]+$'
- if [[ $1 =~ $number_re ]] ; then
- declare levels="${1:-1}" # set the number of levels up the directory tree to traverse
- if [[ $levels =~ [^[:digit:]] ]]; then
- return 1
- fi
- # set targetDir to target directory
- for (( l=1; l<=levels; l++ )); do
- # %/* will produce an empty string in first-level directories. This handles that case
- if [[ -n "${targetDir%/*}" ]]; then
- targetDir="${targetDir%/*}"
- else # set targetDir to / and break out of loop
- targetDir=/
- break
- fi
- done
- # if new working directory is different from current directory, change directories
- else
- directory_re=".*/[^/]*$1[^/]*$"
- while ! [[ $targetDir =~ $directory_re ]] ; do
- if [[ -n "${targetDir%/*}" ]]; then
- targetDir="${targetDir%/*}"
- else # Root reached without finding the directory
- pwd
- return 3
- fi
- done
- fi
- if [[ "$targetDir" != "$PWD" ]]; then
- cd "$targetDir" || return 2 # if cd fails
- else
- return -1 # nothing to do (exit code = 255)
- fi
- }
- goto() {
- ALIAS_FILE=/path/to/aliases.txt
- usage='Usage: goto [-m destination] name'
- if [[ $# == 0 ]] ; then
- echo "$usage"
- return 1
- fi
- # getopt seemed like overkill
- if [[ $1 == '-m' ]] ; then
- abspath=$(cd $(dirname $2); pwd)/$(basename $2)
- if ! [[ -e $abspath ]] ; then
- echo "No such directory: $abspath"
- return 2
- fi
- existing_re="^$abspath |$3$"
- _=`grep -E "$existing_re" $ALIAS_FILE`
- # If the alias is already there
- if [[ $? == 0 ]] ; then
- tmpfile=/tmp/goto.tmp
- touch $tmpfile
- grep -v -E "$existing_re" $ALIAS_FILE > tmpfile
- mv $tmpfile $ALIAS_FILE
- fi
- echo "$abspath $3" >> $ALIAS_FILE
- else
- re="$1$"
- newdir=`cat $ALIAS_FILE | grep -e $re | awk '{print $1}'`
- if [[ -e $newdir ]] ; then
- cd $newdir
- return 0
- else
- echo "No alias for '$1'."
- return -1
- fi
- fi
- }
- # Directory path shortener
- export MYPS='$(echo -n "${PWD/$HOME/"~"}" |
- awk -F "/" '"'"'{
- if (length($0) > 30) {
- if (NF>4) print $1 "/" $2 "/.../" $(NF-1) "/" $NF;
- else if (NF>3) print $1 "/" $2 "/.../" $NF;
- else print $1 "/.../" $NF;
- }
- else print $0;}'"'"')'
- PS1='$(eval "echo ${MYPS}")$ '
- PS1="\[\e[0;31m\]\u:$PS1\[\e[m\]"
Advertisement
Add Comment
Please, Sign In to add comment