realpath: It’s the real thing

I am apparently still suffering the unintentional side effects of my long-ago decision to dump everything from coreutils, bsd-games and util-linux back into my list. Because yesterday I realized I still had a zero-byte file for realpath hiding in my vimwiki folder. 😡

These things are like rabbits. Turn your back and they’ve multiplied. O_o

realpath belongs to the coreutils family, and I am not being kind by suggesting it has no real function or can’t solve an issue. Remember when I prattled endlessly about basename and dirname? realpath solves some of the issues that I mentioned with those programs.

Here’s what it looks like in action:

kmandla@6m47421: ~/temp$ realpath test.txt 
/home/kmandla/temp/test.txt

kmandla@6m47421: ~/temp$ realpath .
/home/kmandla/temp

Oh, K.Mandla. Thank you sooo much for showing that. Thank you sooo much for solving my existential crisis with realpath. K.Mandla, your grimy little blog is a fount of wisdom.

Hey, my little blog may be grimy, but at least it’s legit, original content. Can’t say that about a lot of Linux “news” sites. 👿

Back to business: realpath, as you can see above, returns the path of the target you specify, or as the man page so verbosely explains, “prints the resolved path.” :\

Before you close this tab, here’s one more example:

kmandla@6m47421: ~$ realpath sdb1
/media/sdb1

O-ho. What’s this? Well, I keep a symlink in my home directory that targets a mount point — with that, I can abbreviate mount /media/sdb1 to just mount sdb1, no difference.

realpath returns the real path 🙄 of the symlink, rather than just its location in my home folder. Now we’re cooking.

realpath will accept a few flags, but they strike me as particularly discrete cases for links, and tune realpath‘s output more than I would ever need. Double-check them if you feel you may want them.

So there it is. And unless I’m mistaken — again — this really is the last title from coreutils.

I think. :/