tgmdia
Last Updated: February 25, 2016
·
1.868K
· derrylwc
45d89c9e9975d229c1d43400d14eaa49

Copy base64 version of file to your clipboard

Oftentimes we want to include files as a base-64'd data URI, rather than a path to the resource itself.

Build tools like Grunt can automate this process – but occasionally you'll want/need to process individual files.

My old workflow often involved converting the file online, or converting via command line and then manually removing the newline characters… so I decided to make it quick and painless.

The Bash Function

Just add this function to your .bashrc:

function b64() {
  cat $1 | base64 | pbcopy;
}

And now you can b64 filename in any directory, and its base64'd contents will be copied to your clipboard.

Enjoy!


Notes

Nick Douma thoughtfully suggested that I use base64 instead of openssl, as it's more widely supported on *nix systems.

Previously the function looked like this…

function b64() {
  openssl base64 -in $1 | tr -d "\n" | pbcopy;
}

My openssl implementation also required that I strip newline characters from the output – however with base64 there is no such need.

Say Thanks
Respond

4 Responses
Add your response

7206
60ac9dedcde8f86c71a8f03df8ad91ca

Why use this solution, which depends on OpenSSL, while base64 is a builtin command on many Unixes:

cat image.png | base64 -w0
over 1 year ago ·
7209
45d89c9e9975d229c1d43400d14eaa49

My simple reply is... there's no good reason :-P

I've always used the openssl command. I wasn't aware that base64 was available as a standalone executable.

Thanks for sharing. I'll probably switch to this technique instead – as it's more terse and removes an extra step from the process.

over 1 year ago ·
10650
Default profile 1 normal

By default there is no base64 installed on Mac machines. But python and OpenSSL is installed on almost every unix derivat.
So please keep it general with OpenSSL command.

over 1 year ago ·
10651
45d89c9e9975d229c1d43400d14eaa49

It was available on mine – presumably by default, as I don't recall ever installing it. Feel free to use whichever version is supported by your system

over 1 year ago ·