我如何才能管道输出的命令到我的剪贴板,并粘贴回来时,使用终端?例如:
cat file | clipboard
我如何才能管道输出的命令到我的剪贴板,并粘贴回来时,使用终端?例如:
cat file | clipboard
当前回答
我来自一个精简的KDE背景,没有访问xclip, xsel或其他花哨的东西。我有一个TCSH Konsole让事情变得更糟。
必备条件:qdbus klipper xargs bash
创建一个bash可执行文件foo.sh。
#!/bin/bash
qdbus org.kde.klipper /klipper setClipboardContents "$1" > /dev/null
注意:这需要bash,因为TCSH不支持多行参数。
后面跟着。cshrc. xml文件中的TCSH别名。
alias clipboard xargs -0 /path/to/foo
解释:
Xargs -0将stdin管道到单个参数中。该参数被传递给bash可执行文件,该可执行文件使用qdbus向klipper发送“复制到剪贴板”请求。通往/dev/null的管道是不将qdbus返回的换行符打印到控制台。
使用示例:
ls | clipboard
这将把当前文件夹的内容复制到剪贴板中。
注意:只适用于管道。如果需要复制参数,直接使用bash可执行文件。
其他回答
在不使用外部工具的情况下,如果你连接到服务器视图SSH,这是一个相对简单的命令:
在Windows 7+命令提示符中:
ssh user@server cat /etc/passwd | clip
这将把远程文件的内容放到本地剪贴板中。
(该命令需要运行Pageant以获取密钥,否则它将要求您输入密码。)
我制作了一个提供类似功能的小工具,但没有使用xclip或xsel。Stdout复制到剪贴板,并可以再次粘贴到终端中。看到的:
https://sourceforge.net/projects/commandlinecopypaste/
注意,这个工具不需要x会话。剪贴板可以在终端内使用,不需要通过Ctrl+V或鼠标中键单击粘贴到其他x窗口中。
这里有两个简单的解决方案,每个方法只有两行代码!
不需要安装额外的软件(后者可能会带来大量的依赖关系,其中一些有潜在的安全问题)
注:第二种方法不适用于Debian中的nano编辑器。
方法1:
Sudo打印“\n#$(日期)”> > /道路/ intended_file 注意:在任何一行前面加上前面的注释符号#不会损坏任何文件。 用编辑器打开文件 Sudo gedit /path/intended_file 然后复制日期到编辑器内的剪贴板,并粘贴到任何地方。
2方法
将位于磁盘任意位置的uniqueFile文件的内容写入delete.txt文件: sudo find / -iname 'uniqueFile' >> delete.txt 用文本编辑器打开文件 中delete.txt 并从编辑器中复制(Ctrl-C)突出显示的所需的long-long路径到剪贴板。或者你也可以使用终端纳米编辑器(虽然不支持“标准”Ctrl-C)。 可选附加步骤: 如果delete.txt已经是你的个人日志文件: rm delete.txt 或 mv delete.txt memo-uniqueFile.txt
我写了这个小脚本,它把猜测工作从复制/粘贴命令中去掉。
该脚本的Linux版本依赖于系统中已经安装的xclip。这个脚本叫做剪贴板。
#!/bin/bash
# Linux version
# Use this script to pipe in/out of the clipboard
#
# Usage: someapp | clipboard # Pipe someapp's output into clipboard
# clipboard | someapp # Pipe clipboard's content into someapp
#
if command -v xclip 1>/dev/null; then
if [[ -p /dev/stdin ]] ; then
# stdin is a pipe
# stdin -> clipboard
xclip -i -selection clipboard
else
# stdin is not a pipe
# clipboard -> stdout
xclip -o -selection clipboard
fi
else
echo "Remember to install xclip"
fi
该脚本的OS X版本依赖于pbcopy和pbpaste,它们已预安装在所有mac电脑上。
#!/bin/bash
# OS X version
# Use this script to pipe in/out of the clipboard
#
# Usage: someapp | clipboard # Pipe someapp's output into clipboard
# clipboard | someapp # Pipe clipboard's content into someapp
#
if [[ -p /dev/stdin ]] ; then
# stdin is a pipe
# stdin -> clipboard
pbcopy
else
# stdin is not a pipe
# clipboard -> stdout
pbpaste
fi
使用脚本非常简单,因为您只需像这两个示例中所示的那样通过管道输入或输出剪贴板。
$ cat file | clipboard
$ clipboard | less
我为Linux/OSX/Cygwin创建了一个工具,它与其他工具类似,但略有独特之处。我叫它cb,它可以在这个github gist中找到。
在这个要点上,我演示了如何使用Linux、macOS和Cygwin通过命令行进行复制和粘贴。
Linux
_copy(){
cat | xclip -selection clipboard
}
_paste(){
xclip -selection clipboard -o
}
操作系统
_copy(){
cat | pbcopy
}
_paste(){
pbpaste
}
Cygwin
_copy(){
cat > /dev/clipboard
}
_paste(){
cat /dev/clipboard
}
注:我最初只是打算在我对Bob Enohp的回答的评论中提到这一点。但后来我意识到我应该在我的主旨上加上一个自述。由于主旨编辑器不提供Markdown预览,我在这里使用了答案框,在复制/粘贴到我的主旨后,“我不妨提交答案。”如果你想讨论功能/bug,最好在github上的要点评论中这样做。
cb
剪贴板上的防漏t恤
这个脚本是模仿tee(参见man tee)的。
它就像普通的复制和粘贴命令一样,但是统一,并且能够感知你什么时候想要它是可链接的
例子
Copy
$ date | cb
# clipboard contains: Tue Jan 24 23:00:00 EST 2017
粘贴
# clipboard retained from the previous block
$ cb
Tue Jan 24 23:00:00 EST 2017
$ cb | cat
Tue Jan 24 23:00:00 EST 2017
$ cb > foo
$ cat foo
Tue Jan 24 23:00:00 EST 2017
链接
$ date | cb | tee updates.log
Tue Jan 24 23:11:11 EST 2017
$ cat updates.log
Tue Jan 24 23:11:11 EST 2017
# clipboard contains: Tue Jan 24 23:11:11 EST 2017
通过文件重定向复制
(在最后按时间顺序演示是有意义的)
# clipboard retained from the previous block
$ cb < foo
$ cb
Tue Jan 24 23:00:00 EST 2017
# note the minutes and seconds changed from 11 back to 00