相当于将文件复制到剪贴板的命令行是什么?

Str*_*sky 109 command-line files clipboard

相当于在文件管理器中的文件上按 CTRL+C 以便将文件(而不是文件名)复制到剪贴板的命令行是什么?

例如,当您想将终端中的目录中的文件复制到剪贴板以快速将文件粘贴到文件管理器中的目录中时,这可能有用且快速。还有其他人。

Ser*_*gey 118

当您在文件管理器中的文件上按 Ctrl-C 时,文件的内容不会复制到剪贴板。一个简单的测试:在文件管理器中选择一个文件,按Ctrl-C,打开一个文本编辑器,按Ctrl-V。结果不是文件的内容,而是它的完整路径。

实际上,情况有点复杂,因为您不能做相反的事情 - 从文本编辑器复制文件名列表并将它们粘贴到文件管理器中。

要将一些数据从命令行复制到 X11 剪贴板,您可以使用xclip命令,该命令可以安装

sudo apt-get install xclip
Run Code Online (Sandbox Code Playgroud)

将文件的内容或某些命令的输出复制到剪贴板使用

cat ./myfile.txt|xclip -i
Run Code Online (Sandbox Code Playgroud)

然后可以使用鼠标中键将文本粘贴到某处(这称为“主要选择缓冲区”)。

如果要将数据复制到“剪贴板”选择,以便可以使用 Ctrl-V 将其粘贴到应用程序中,则可以执行

cat ./myfile.txt|xclip -i -selection clipboard
Run Code Online (Sandbox Code Playgroud)

为了能够从命令行复制文件并将它们粘贴到文件管理器中,您需要指定一个正确的“目标原子”,以便文件管理器识别剪贴板中的数据,并以正确的格式提供数据 - 幸运的是,如果在文件管理器中复制文件,它只是一个绝对文件名列表,每个文件名都在一个新行上,使用find命令很容易生成:

find ${PWD} -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list
Run Code Online (Sandbox Code Playgroud)

(至少这在 KDE 中对我有用)。现在您可以包装成一个小脚本,您可以调用该脚本,例如cb

#!/bin/sh
xclip -i -selection clipboard -t text/uri-list
Run Code Online (Sandbox Code Playgroud)

然后你把它放进去~/bin,在它上面设置可执行位并像这样使用它:

find ${PWD} -name "*.txt"| cb
Run Code Online (Sandbox Code Playgroud)

不错,不是吗?


Gla*_*den 11

我听说 xclip 还支持使用xclip-copyfile和 进行文件复制xclip-pastefile。我还没有真正使用它,但它可能是一个解决方案。


Pen*_*eng 6

Mac OS 具有pbcopy更简单的语法:

pbcopy < ~/.ssh/id_rsa.pub 
Run Code Online (Sandbox Code Playgroud)

或者

cat ~/.ssh/id_rsa.pub  | pbcopy
Run Code Online (Sandbox Code Playgroud)

pbcopy在 Ubuntu 上进行模拟xclip(通过安装sudo apt install xclip):

alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'
Run Code Online (Sandbox Code Playgroud)