Re:How and Why to Log Your Bash History
by kerkeslager on Tuesday May 31, 2016 @11:57AM
(#11807284)
If you find yourself doing a series of `cd` and `ls` commands frequently, I feel like you might be using `cd` and tab completion ineffectively.
Instead of doing:
ls
cd foo/
ls
cd bar/
ls
cd baz/
You can do: ls
cd foo/<tab><tab>bar/<tab><tab>baz/
This isn't what it will look like, it's just the key sequence (if this doesn't make sense let me know and I'll try to explain better). <tab><tab> will list all the possible completions, which is equivalent to an ls, without having to type in an ls and then another cd.You can frequently avoid even more `cd`/`ls` shenanigans by judiciously using `pushd`.
Tab autocomplete will show everything, and showing a screen full of name is not particularly useful. Most of the time I use ls it's something like "ls (asterisk)foo(asterisk)".
How do I escape asterisk on HN? :O
In zsh, you can complete a glob.
bash too
But if there are multiple candidate completions, you don't get a list of them, the way you do from <tab> <tab> with no glob - it just completes unconditionally to the first candidate.
Edit: I had a guess about how to escape asterisks here, and it didn't work!
You can so the same with tab . Eg foo/(asterisk)bar<tab><tab>
I just do:
function cd () { builtin cd "$@" && ls; }
Re:How and Why to Log Your Bash History
by superuser2 on Tuesday May 31, 2016 @11:27AM
(#11807080)
Can you not set the template line for log entries? Seems like $(pwd) could go alongside time stamp.
It would be really clever if a series of cd/ls rolled into a final absolute path cd so history shows context for the subsequent batch of commands.