

J: an alternative to cd that learns where you spend time - burke
http://github.com/rupa/j/tree

======
calambrac
This is nice.

Kind of but not really in a similar vein: I have 'sd' aliased to a small
script that goes to the 'next interesting directory', where an 'interesting
directory' is one with a visible non-directory or more than one sub-directory.
So, for instance, if you're sitting at foo, and underneath you is
bar/baz/bat/bit.txt, 'sd bar' will bring you all the way down to bat, and then
'sd ..' will pull you all the way back up to the previous interesting
directory.

Just to keep from getting lost, it does a pwd when it gets where it's going,
and because typing ls after cd had burned itself into my muscle memory, it
goes ahead and does that, too.

It's a small thing, but I really like it for hopping around source trees in
languages that use directories to denote package structure.

~~~
brunoqc
Post like you just did should have a mandatory link to the code :)

~~~
calambrac
There's a python portion: <http://pastebin.com/f16aae31d>

And a small bash function (since you can only change your shell's pwd from the
shell itself):

<http://pastebin.com/f5d93d12a>

~~~
brunoqc
Thanks!

------
burke
For any zsh users out there, I made a couple changes so it works in zsh:
<http://github.com/burke/j>

~~~
codyrobbins
Perfect, that's just what I was looking for. Thanks!

------
thorax
Very neat tool. I saw this when it was mentioned on a post I made not long
ago.

If you want something you can simply add to .bashrc, here are some bash
functions to also help jump around to directories you want:
<http://mattie.posterous.com/some-handy-bash-commands>

There's a link there for the "up" command (taking you to some directory higher
in your path with that name) and also for "down" (similar downward) and "cdd"
which just does a rapid use of locate to find the first directory that
matches.

------
msg
why not use CDPATH?

At work, I have the interesting heads of our source tree in CDPATH, so I can
get to most directories I care about by typing their short names.

For instance
[http://www.macosxhints.com/article.php?story=200503181431142...](http://www.macosxhints.com/article.php?story=2005031814311425)

~~~
Harkins
Because you don't have to teach it, it just learns.

~~~
msg
With J I have to visit directories to add them to my index. This ramp-up is
annoying.

With CDPATH, I index it all at the beginning. If I find a new major head in my
directory tree, I just add it.

~~~
doki_pen
It would be nice if it could look through .bash_history when it's first run,
or something.

------
truebosko
Ok, I feel like an idiot. When it says "source this into your .bashrc" what
does it mean?

I know where .bashrc is, but simply pasting it into the file seems like .. the
wrong way to do it. Couldn't really find an answer on Google

~~~
inky
Add a line to the end of your ~/.bashrc file with:

    
    
        . $HOME/.bash/j.sh
    

(Change that path to point to wherever j.sh is, though ~/.bash is probably a
good place for it.)

~~~
truebosko
Thanks so much! Makes sense

------
bluishgreen
<http://www.commandlinefu.com/commands/by/senthil>

second one, simple - effective

------
akkartik
My version: <http://akkartik.name/bash.html#cd>

But this is nice and self-contained.

------
braindead_in
awesome. huge timesaver. wish it could for for cp paths too

~~~
lysium
you could add a completion for cp commands just like in the last line of j.sh

    
    
          complete -o dirnames -o filenames -C "j --complete" cp mv
    

or something similar.

------
zacharypinter
I prefer the proggit headline: "Where the fuck has this been for the last 30
years? A cd command that learns."

