拷贝复制命令行输出放在系统剪贴板上

Posted on December 23, 2012

为什么要这么做?

  • 直接把命令的输出(比如grep/awk/sed/find或是你的程序输出结果)放到剪切板上,这么就可以在IM中CTRL + V粘贴后发出去。
    避免操作的繁琐和跳跃:把结果输出到文件、用文本编辑器打开文件、选中文本、CTRL + C。
  • 通过命令将文件内容拷贝到剪切板,以避免拷贝错误、操作的跳跃(跳到文件编辑器)

Windows下

使用系统自带的clip命令。
# 位于C:\Windows\system32\clip.exe

示例:

echo Hello | clip 
# 将字符串Hello放入Windows剪贴板

dir | clip
# 将dir命令输出(当前目录列表)放入Windows剪贴板

clip < README.TXT   
# 将readme.txt的文本放入Windows剪贴板

echo | clip 
# 将一个空行放入Windows剪贴板,即清空Windows剪贴板

Linux下

使用xsel命令。

示例:

cat README.TXT | xsel
cat README.TXT | xsel -b # 如有问题可以试试-b选项
xsel < README.TXT 
# 将readme.txt的文本放入剪贴板

xsel -c
# 清空剪贴板

Mac下

使用pbcopy命令。 # 对应有个pbpaste命令。

示例:

echo 'Hello World!' | pbcopy
# 将字符串Hello World放入剪贴板

最佳实践

要复制结果又想看到命令的输出

命令的结果输出时,如果给复制命令(即上面提到的命令clip、xsel、pbcopy)那么命令输出就看不到了。如果你想先看到命令的输出,可以下面这么做。

$ echo 'Hello World!' | tee tmp.file.txt
Hello World!
$ xsel < tmp.file.txt
$ rm tmp.file.txt

即先使用tee命令把输出输到控制台和一个文件中。

命令执行完成后,再把输出的内容放到剪贴板中。

复制SSH的公有KEY

使用下面的命令:

$ pbcopy < ~/.ssh/id_rsa.pub

注:不同系统使用不同的复制命令

避免用文本编辑器打开这个文件、选中文本、CTRL + C这样繁琐操作。

参考资料

后记

还在用的Windows、吐槽弱暴命令行cmd的程序猿们,推荐使用cygwin,可以看看我的博文惊艳的cygwin——Windows下的Linux命令行环境

把命令行输出放在系统剪贴板上