Quick Tip: Jumping to the Finder location in Terminal
I’d been meaning to write a script to do this for a while, and a post by Dr. Drang inspired me to whip it up. Dr. Drang’s is a TextExpander snippet (which also works fine in shell if you use “quoted form of” to be safe). This method is just a tad more convenient for Terminal usage. It’s a two-line bash function for quickly cd
-ing to the location of the front Finder window with a simple command (cdf
).
There are a few utilities to do this, like ShellTo and GoToShell, but why run an extra process when it’s this easy? Just throw this in ~/.bash_profile
:
# cd to the path of the front Finder window
cdf() {
target=`osascript -e 'tell application "Finder" to if (count of Finder windows) > 0 then get POSIX path of (target of front Finder window as text)'`
if [ "$target" != "" ]; then
cd "$target"; pwd
else
echo 'No Finder window found' >&2
fi
}
[Updated based on suggestions from Rob Trew to fail gracefully when no Finder window is open]
You can also create an alias to do the reverse:
alias f='open -a Finder ./'
Run source ~/.bash_profile
and type cdf
to change your working directory to match your Finder location. Type f
to open a Finder window to your current location in the shell.
Combine the speed and Unix power of the shell with the convenience and added functionality of Finder!
Quick tips are random posts regarding something I discovered on my way to something bigger. They usually get longer than “quick” would imply, for which I refuse to apologize.