Initial commit: HPR Knowledge Base MCP Server
- MCP server with stdio transport for local use - Search episodes, transcripts, hosts, and series - 4,511 episodes with metadata and transcripts - Data loader with in-memory JSON storage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
169
hpr_transcripts/hpr3882.txt
Normal file
169
hpr_transcripts/hpr3882.txt
Normal file
@@ -0,0 +1,169 @@
|
||||
Episode: 3882
|
||||
Title: HPR3882: Alternatives to the cd command
|
||||
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr3882/hpr3882.mp3
|
||||
Transcribed: 2025-10-25 07:14:42
|
||||
|
||||
---
|
||||
|
||||
This is Hacker Public Radio, Episode 3882 for Tuesday, the 20th of June 2023.
|
||||
Today's show is entitled, Alternatives to the CD Command.
|
||||
It is part of the series' bash scripting.
|
||||
It is hosted by Klaatu, and is about 11 minutes long.
|
||||
It carries a clean flag.
|
||||
The summary is, Navigate your file system without CD.
|
||||
Hey everybody, this is Klaatu, and this episode I want to talk about changing directories.
|
||||
I know that's not seemingly a very exciting topic, but what I want to do in this episode
|
||||
is come up with as many ways I can think of to navigate a system in Linux without CD
|
||||
or not in the way that you would expect with CD.
|
||||
So the first one that I could think of was PushD and PopD.
|
||||
In the bash shell, the PushD, PopD, and DERS, DIRS, commands manage a map of everywhere
|
||||
you go on your system.
|
||||
They only do that when you use them, so you have to mentally substitute PushD instead
|
||||
of CD, or you could alias it, something like that.
|
||||
But here's how it works.
|
||||
And you want to change directory to a new location, use PushD to push your current
|
||||
location onto the stack.
|
||||
The stack in this context is an imaginary plate, well it's not imaginary, it's a place
|
||||
in memory that remembers where you've been.
|
||||
So for example, PWD, HomeKlaatu, okay, well PushD documents, PWD, HomeKlaatu documents.
|
||||
To see what's on the stack, use the DERS command, DIRS.
|
||||
It says, tilde slash documents, space, tilde.
|
||||
It's listing my history on one line, starting with the most recent, that is your current
|
||||
location of, in this example, tilde documents, followed by another tilde for the home directory
|
||||
because that's where I started from.
|
||||
You can add more to your stack by moving around your file system some more.
|
||||
So for instance, PushD, tilde slash pictures, DERS, tilde pictures, tilde documents, tilde.
|
||||
To pop a directory off the stack and make it your current location, use the pop D command.
|
||||
The pop D command removes the most recent directory from the stack and makes it your
|
||||
current location and displays your new stack with the left directory representing your
|
||||
new location.
|
||||
So DIRS, tilde pictures, tilde documents, tilde, pop D, or I don't even have to type in
|
||||
theirs, it tells me, tilde documents, tilde.
|
||||
So to condense that down into one sentence explanation, PushD to change a directory to
|
||||
a new place, pop D to take a directory off of your stack and make it your new current
|
||||
location, DIRS to view your stack.
|
||||
Next, CD space dash, I know, I said without CD, but this is with CD, but there's a slight
|
||||
difference here.
|
||||
This is maybe some people don't know about this little trick.
|
||||
When you find yourself switching back and forth between two directories, you do not have
|
||||
to type the directories each time.
|
||||
If you don't even have to use control P or the up arrow, you can use CD dash.
|
||||
The CD dash command takes you to your previous directory.
|
||||
It doesn't use the same stack as PushD does.
|
||||
It just remembers what your previous one directory was and then takes you to it and displays
|
||||
your current location.
|
||||
So if I'm in slash Etsy, I could do a CD slash var and then CD space dash, I'm back
|
||||
in Etsy.
|
||||
CD space dash, I'm back in var, CD space dash, I'm back in Etsy, back and forth.
|
||||
Really, really convenient.
|
||||
Three variables.
|
||||
Sometimes you might find yourself returning or otherwise interacting with the same directory
|
||||
with a long and inconvenient name over and over again.
|
||||
For instance, suppose you're auditing some files in slash home, clatoon slash dot local
|
||||
slash Etsy slash myder slash config slash example and then there are a bunch of files
|
||||
in there.
|
||||
Instead of typing some variation of emax, home clatoon dot local slash Etsy slash myder
|
||||
config examples file one dot TXT for every file you need to open, create a short variable
|
||||
and use it as your path instead.
|
||||
So export myder equals slash home slash clatoon slash dot local slash Etsy slash myder slash
|
||||
config slash example.
|
||||
And then from then on, you can just use myder.
|
||||
So emax, dollar sign, myder slash file one dot TXT done.
|
||||
The variable disappears when you reboot or you can destroy it manually when you're done
|
||||
with the unset command, unset myder.
|
||||
Now you don't have that variable or you could reset it to something else.
|
||||
Myder equals some other long directory and now you've got that one for to use.
|
||||
Four, history and history verify.
|
||||
You might already know that the history command lets you see your past, I don't know, thousand
|
||||
or so commands as a numbered list.
|
||||
And you can use that list to instantly execute a previous command by number.
|
||||
The syntax is simply an exclamation mark followed by the number of the command you want
|
||||
to execute.
|
||||
So for example, if you do history, pipe, head dash in three, you see maybe a CD till the
|
||||
slash documents as command 758, exclamation 758, return and you've just changed directories
|
||||
to till the till the document.
|
||||
But the hissed verify option in the bash shell lets you verify a history line before you
|
||||
execute.
|
||||
Activate it with shopped shell options SH OPT, shoppedspace dash S to set hissed verify.
|
||||
That's HIST verify all one string.
|
||||
Now when you type in exclamation mark 758 instead of executing that command from your history,
|
||||
your next prompt contains the command and waits for you to either edit it or to accept
|
||||
it with a return or enter on your keyboard.
|
||||
So for me, that's not faster than just exclamation 801 or whatever, 500, whatever.
|
||||
But what it does is gives me the confidence to actually use something from history.
|
||||
Sometimes I'll be a little bit nervous that I'm forgetting the number of the history
|
||||
or something like that.
|
||||
And so I won't end up not using it.
|
||||
But with that confirmation step before I actually do the thing, then I feel more comfortable
|
||||
about looking at history, remembering it, being confident that I remember it and being
|
||||
confident that if I don't, I'll have a chance to not do the thing that I that I'm about
|
||||
to do.
|
||||
It also helps me edit commands.
|
||||
So if there is a long directory name and then I start using a similar name in that similar
|
||||
path, but just a different sub directory, then I can just edit that command with hissed
|
||||
verify, edit it before I accept it.
|
||||
And now I've got a new command that I can start using out of my history.
|
||||
5.
|
||||
Auto-CD.
|
||||
Auto-CD shall option in bash.
|
||||
Let's you skip the CD command all together.
|
||||
To change directory, you just type the path of a valid directory on your system.
|
||||
No CD required.
|
||||
It has to be enabled.
|
||||
So you can enable it with the same way as with hissed verify.
|
||||
You do SHOPT, that's like shell option, SHOPT, space-s to set, like Sierra, set-s, space
|
||||
auto-CD.
|
||||
Now just type the path of a valid directory.
|
||||
So you can slash TMP.
|
||||
Now I'm in the TMP folder.
|
||||
It's that easy.
|
||||
There's no CD to type.
|
||||
It's kind of nice.
|
||||
I mean, it's three fewer keyboard presses.
|
||||
And then finally, the last one I could think of, and I hope someone can think of more,
|
||||
but the last one I could think of was not to change directory at all.
|
||||
It's a little bit of a cheat, but realistically, for a lot of the things on a Linux in the
|
||||
terminal that you're doing with a Linux command, you don't really, very often, you don't
|
||||
have to be in the place you're working.
|
||||
You can just open the file or pipe something to the, or like, redirect something to that
|
||||
file or convert that file from a path to a path.
|
||||
You don't have to go there to do it.
|
||||
The command will do all of that legwork for you.
|
||||
I think I tend to go to two directories, maybe more often than I probably should.
|
||||
I mean, admittedly, sometimes that's not the case.
|
||||
Sometimes it is better to be in the directory because that way you only have to type the
|
||||
file name.
|
||||
You know, it's just, it's less to type, although again, I could use a variable.
|
||||
So sometimes I just feel like I'm moving around too much.
|
||||
And lately, I have been trying to challenge myself a little bit, not not too much, but
|
||||
a little bit.
|
||||
Just when I think I want to do something to a file or look at a file or whatever, I don't
|
||||
CD there.
|
||||
I just do it from wherever I am, just work out of my home directory.
|
||||
It's kind of a fun challenge sometimes.
|
||||
And that's kind of what made me think of this was how could I get around CDing so much?
|
||||
Because I've noticed that I do spend too much time, I think, CDing to places.
|
||||
It's kind of like, I've cut certainly, you know, a graphical file manager out of my
|
||||
life, not entirely, but you know, if I don't need one, if I don't want to use a graphical
|
||||
file manager, I don't have to.
|
||||
And so I feel kind of like I replaced it with a bunch of CDing and L-S-ing a lot.
|
||||
And that's another, that's a new inefficiency that just half of the time doesn't really need
|
||||
to be done.
|
||||
As it does, like I say, file paths can get long and cumbersome.
|
||||
And for one-offs, I mean, you may as well CD there in L-S because why not?
|
||||
Although maybe not.
|
||||
Again, you could just L-S.
|
||||
So really, I think we maybe, possibly, some people, myself at least, we CD too much.
|
||||
So if you want to cut that down, think of a couple of ways or borrow my ways of not
|
||||
CDing, of not moving around your file system as much, you could save seconds of work for
|
||||
yourself.
|
||||
Thanks for listening to this episode.
|
||||
Go record your own on some cool tip that you have.
|
||||
Talk to you next time.
|
||||
You have been listening to Hacker Public Radio, as Hacker Public Radio does work.
|
||||
Today's show was contributed by a HBR listener, like yourself, if you ever thought of recording
|
||||
a podcast, and click on our contribute link to find out how easy it really is.
|
||||
Hosting for HBR has been kindly provided by an honesthost.com, the Internet Archive
|
||||
and our sync.net.
|
||||
On the Sadois status, today's show is released under Creative Commons, Attribution 4.0 International
|
||||
License.
|
||||
Reference in New Issue
Block a user