summaryrefslogtreecommitdiff
path: root/ce
blob: 982e885b74bf8ac6b973cd8f2139606717a45b97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
# Smart directory changer using the power of grep ;)
# source in a function j() { cd `d $*`} or some such
#!/bin/bash
[ "$1" = "$HOME" ] && echo $HOME && exit
fl="$HOME/.local/share/dir_lst";[ ! -f "$fl" ] && touch "$fl"
[ "$2" = "!" ] && echo "$1" && exit || \
ln=`grep -n "$1" "$fl" | head -n 1 | cut -d : -f 1`
if [ ! "$1" = "" ]; then if [ ! "$ln" = "" ]; then
echo -e "$ln m0\n1p\nw"|ed -s "$fl"||echo \?; else
l=$1; while [ ! -d "$l" ]; do echo \?; read l; done;
l=`echo "$l" | sed "s|^[^/]|$PWD/&|"`;
echo -e "0i\n$l\n.\n1p\nw" | ed -s "$fl"; sed -i '43,$d' "$fl"
fi; else echo -e "2 m0\n1p\nw" | ed -s "$fl"; fi;