Copy Shell Output via the Command Line

By  on  
Oftentimes I'll want to copy the output of a shell command execution but can't get the whole output because it's larger than the terminal's buffer length, so I'll need to write to file for easy viewing, or I'll simply be annoyed that I have to click-hold-drag to copy the output.  Shouldn't there be an easier way?  There is:  pbcopy and clip.  Using pbcopy within the shell, the output of an execution can automatically be added to the copy queue (or clipboard):
# Copy the source of davidwalsh.name to the clipboard on Mac
curl davidwalsh.name | pbcopy

# Copy the source of davidwalsh.name to the clipboard on Windows
curl davidwalsh.name | clip
Piping pbcopy at the end of the command makes this magic possible.  So what do I look forward to using this for?  My colleague Luke showed me how he gets the commit hash from the master branch without needing to go to GitHub to get it:
alias ghash='git rev-parse HEAD && git rev-parse HEAD | pbcopy'
I look forward to using pbcopy more -- an excellent utility to allow me to avoid lame cursor click-hold-drag to get the output I want!

Recent Features

Incredible Demos

  • By
    MooTools TextOverlap Plugin

    Developers everywhere seem to be looking for different ways to make use of JavaScript libraries. Some creations are extremely practical, others aren't. This one may be more on the "aren't" side but used correctly, my TextOverlap plugin could add another interesting design element...

  • By
    jQuery Comment Preview

    I released a MooTools comment preview script yesterday and got numerous requests for a jQuery version. Ask and you shall receive! I'll use the exact same CSS and HTML as yesterday. The XHTML The CSS The jQuery JavaScript On the keypress and blur events, we validate and...

Discussion

  1. MaxArt

    It may be silly to notice that this isn’t for Windows…

  2. Might be worth adding instructions using xcopy on Linux, and clip on Windows

  3. I am on Linux and I use http://www.vergenet.net/~conrad/software/xsel/

    Use it like this:
    curl davidwalsh.name | xsel –clipboard –input

    You can also alias is so you can use pbcopy

    To do that add alias pbcopy=’xsel –clipboard –input’ to your ~/:bashrc

  4. suprsidr

    windows would be curl davidwalsh.name | clip
    assuming you had curl for windows installed ;)

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!