pclip.exe
和gclip.exe
这些是Windows的UnixUtils端口。 (但他们只处理纯文本)。还有其他一些本机Windows实用程序,可以写入/提取任何格式。
我在Synaptic Package Manager中寻找了类似的东西,但是找不到任何东西。
那里有我想念的东西吗? ...或者也许这在Bash脚本中可用?
我想要的实用程序类型将可以通过std-in / std-out或file-in / file-out进行读取/写入,并可以处理Unicode,Rich Text Format,图片,等剪贴板格式...
NB:我不追求剪贴板管理器。
#1 楼
xsel我正在使用xsel安装xsel,但仅将其与纯文本和unicode文本一起使用。
xsel
可以复制并粘贴到三个不同的“剪贴板”。 br /> 默认情况下,它使用“ X窗口系统”主要选择,基本上就是当前选择中的任何内容。 X Window系统还具有一个辅助选择(使用不多)和一个剪贴板选择。您可能正在寻找剪贴板的选择,因为这是桌面环境(例如Gnome,KDE,XFCE)用于剪贴板的内容。要将其与xsel一起使用:
xsel --clipboard < new-clipboard-contents.txt
xsel --clipboard > current-clipboard-contents.txt
评论
Adi ... xsel似乎只是基于文本的(如您所述),所以我将寻找更全面的实用程序...但是,阅读其信息文档对我来说非常有趣...我知道(在终端中)单击鼠标中键会将当前选定的文本粘贴到命令行中,但是我没有意识到此功能适用于大多数X应用程序。通过单击鼠标中键粘贴(但某些应用似乎可以覆盖它)两个剪贴板!非常方便..我必须阅读有关第三个X选择缓冲区的更多信息。
– Peter.O
2010年11月7日15:14
xsel确实可以处理Unicode文本。您可以在freedesktop Wiki页面上阅读有关X剪贴板的更多信息:freedesktop.org/wiki/Specifications/ClipboardsWiki。
– Adi Roiban
2010年11月7日在16:27
我得把这个新信息弄清楚。3个剪贴板!主要,中学,剪贴板...这与我在Windows中使用的非常不同...第三个“ CLIPBOARD”似乎与Windows / Mac剪贴板相同...但是可笑的是这里晚..明天我会回到这个……(有点儿生气,但是现在阅读太多了。)
– Peter.O
2010年11月7日在16:54
谢谢... xsel可以完成此工作(用于文本)...其他格式可能会出现问题。
– Peter.O
2010年11月9日20:17
xsel -b是xsel --clipboard的缩写。
–安德烈·杜马(Andrei Duma)
2015年9月28日14:26在
#2 楼
xclip安装xclip可能是您的选择之一。
cat samples.sh | xclip -sel clip
还可以使用别名在.bashrc文件中进行设置。
alias clipboard='xclip -sel clip'
使用
xclip
将二进制数据粘贴到文件中的关键是告诉剪贴板上有哪些媒体类型。对于PNG,您可以:xclip -selection clipboard -t image/png -o > "`date '+%Y-%m-%d_%T'`.png"
所以现在在
~/Dropbox/.mybashrc
;)上可以添加别名(clipboard2photo)以轻松粘贴到图像文件(也许有一天我们会拥有它在Nautilus上)。评论
看起来不错,但是我只是没有机会研究它,但是...我会尽快做到的...
– Peter.O
2010年11月8日在7:03
xclip也仅处理文本选择。
–史蒂夫·比蒂(Steve Beattie)
2010年11月8日在22:04
另外,该命令可以与xclip -se c一样短
–杰利姆·安格利姆
2011年10月5日,下午1:05
我不明白为什么这不在手册页中
– Sergiy Kolodyazhnyy
15年4月24日在6:37
尝试将图像粘贴到文件时出现此错误:目标图像/ png不可用
–埃米利奥·尼古拉斯(EmilioNicolás)
16年7月21日在12:08
#3 楼
Parcellite我多年来一直使用Parcellite作为剪贴板管理器。它在通知区域中运行,并提供了许多用于管理“主要选择”和标准freedesktop.org剪贴板的选项。
这是我管理剪贴板项目的答案。
评论
这看起来像是一个很好的面板应用程序。“操作”很方便……但是不幸的是,它不是我想要的工具类型。也许我所追求的只是一个晦涩的Python脚本之类的东西……有几个非常好的纯Windows实用程序可用,所以我认为等效的东西会在Ubuntu / Linux世界...
– Peter.O
2010年11月7日在16:18
仅供参考,Parcellite具有很酷的功能-复制文本的历史记录。要从历史记录对话框激活自动粘贴,您还应该安装xdotool
– Noam Manos
18年1月25日在14:01
#4 楼
我最近遇到了工具xclip-copyfile
,xclip-cutfile
和xclip-pastefile
(软件包xclip
)。这些工具可让您通过命令行复制/剪切/粘贴整个文件。您可以在此处查看其手册页。
#5 楼
clipitls | clipit
评论
我出于其他原因使用ClipIt,但不知道它能够从终端获取数据。非常感谢您提供该信息。
–朱拉·洛林(Juraj.Lorinc)
17/12/23在13:33
#6 楼
您可以为此使用CopyQ。来自网站:具有高级功能的剪贴板管理器
CopyQ是具有可搜索和可编辑历史记录的剪贴板管理器。
支持Linux和Windows。
对OS X 10.9+的实验支持。
存储文本,HTML,图像和任何其他自定义格式。
高级命令行界面和脚本。
要复制文本文件:
copyq action "cat /tmp/file.txt" "" && copyq select 0
要复制图像(您需要指定MIME类型):
copyq write image/png - < file.png && copyq select 0
要复制数据文件(您需要指定MIME类型):
copyq write application/pdf - < file.pdf && copyq select 0
查看其Wiki了解更多文档和使用示例。
您可以通过ppa:noobslab / indicators PPA进行安装,也可以从项目的“下载”部分手动下载预先打包的最新稳定版
.deb
文件。评论
PPA并不是最新的,至少对于Ubuntu 16.04而言,最好直接从CopyQ的GitHub版本下载。
–尼古拉
17年1月1日在15:32
#7 楼
如果只想将一些文本复制到剪贴板:echo -n "some-text" | xclip -selection clipboard
#8 楼
Pastie最近发布了一个新的具有指标Applet支持的剪贴板管理器(尽管尚未保存在档案中)。除了跟踪文本剪贴板历史记录之外,它还将捕获并保存数据剪贴板条目(文件,文件夹等),如果您通过GUI /剪贴板环境大量操作文件,这可能会很有用。 >您可以添加以下PPA:
ppa:hel-sheep/pastie
评论
感谢Marco的建议,但我不需要剪贴板管理器。有时,我会将一些临时文本粘贴到文本文件中,但实际上我发现“历史记录管理器”会使速度变慢(但这只是我自己。)。我真的很喜欢命令行工具,该工具可以选择性地提取/存储我假定Ubuntu剪贴板类似于Windows剪贴板(如果它与众不同,我会大吃一惊,因为在任何平台上用户的要求都是相同的),我会感到惊讶。)确保有人会发现您的建议有用。
– Peter.O
2010年11月7日15:45
#9 楼
GPaste守护程序设置(具有DBus界面的剪贴板管理守护程序小程序)怎么样:GPaste是用Vala编写的GNOME剪贴板管理套件,它已经更新为更好。适用于最新的GNOME
守护进程现在完全平衡(不再轮询,耗电量更少)
GPasteClipboard现在具有类似于GtkClipboard的“所有者更改”信号
新设置以设置最大数量历史记录中的数据使用的内存容量已被删除
(缺少设计)
代码清除和现代化操作
g_paste_history_add现在已转移全部
g_paste_keybinder_add_keybinding现在已转移全部
安装:
要在Ubuntu 13.10、13.04、12.10或12.04中安装,请使用以下命令:
sudo add-apt-repository ppa:webupd8team/gnome3
sudo apt-get update
sudo apt-get install gnome-shell-extensions-gpaste
或通过
gpaste
安装synaptic package manager
(如果使用Gnome-Shell,则还要安装gnome-shell-extensions-gpaste
)。另一种选择是通过
software-center
安装。 4312010q #10 楼
我正在尝试开发一种不是剪贴板管理器的更好的解决方案,可以从https://github.com/baitisj/copypasta找到。它目前还不能正确处理RTF和HTML,并且大图像会带来问题,但可以随意分叉并提交补丁。#11 楼
对于RTF格式,请使用以下过程:我将文本复制到应用程序的剪贴板中。如果不确定是rtf还是什么,我可以使用以下命令进行验证:
xclip -selection clipboard -o -t TARGETS
打印出类似以下内容时: > TARGETS
text / rtf
text / richtext
所以我忍不住大声喊道:“天哪,真是太好了!上帝保佑linux!”经过那一刻的祈祷之后,很明显的事情发生了:
xclip -selection clipboard -o -t text/rtf > mypreciousRTFcontent.rtf
然后我在libreoffice中处理所有这些内容,并将其作为垃圾邮件发送给我的所有朋友。
:-)
#12 楼
就在这里。尝试比tmux
更高级的screen
。要安装tmux,请在终端中键入以下内容:sudo apt-get install tmux
也尝试
gpm
。 gpm
和tmux
命令可能是一个很好的组合... 评论
屏幕是一个多终端模拟器,而不是剪贴板管理器。
– Marco Ceppi♦
2010年11月7日14:25
屏幕和tmux似乎只能在终端级别使用(我在他们的任何一个信息文档中都找不到“剪贴板”的引用)...我正在寻找的是系统范围的剪贴板复制和粘贴实用程序...我可能不应该将终端用作标签...我想要的实用程序类型将能够通过std-in / std-out或file-in / file-out进行读取/写入,并能够处理Unicode /富文本/图片/等剪贴板格式...
– Peter.O
2010年11月7日14:30
我刚刚找到了关于stackoverflow的参考... gpm用于非X终端“剪贴板”,而GNU屏幕也具有自己的“剪贴板” ...现在我明白了为什么你提到它们了...太好了信息,这使我对幕后发生的事情有了更深的了解……我现在将继续使用基本的Xterm“选择系统”(clipboad)。.Linux“剪贴板”似乎是如此不同到Windows,我一直在寻找的东西可能以一种非常不同的方式完成。+1 :)
– Peter.O
2010年11月9日,19:54
#13 楼
哟,侏儒,这就是使用CORBA废话所能得到的。对于yar软件,没有什么比使用默认情况下未安装的工具更好的了。
如果您使用的是适当的桌面环境(例如KDE-plasma),您就不会遇到此问题,因为您可以使用dbus,无论使用哪种软件,例如控制台:
qdbus org.kde.klipper /klipper setClipboardContents "NiHao"
qdbus org.kde.klipper /klipper getClipboardContents
我个人实际上实际上是使用C#直接连接到dbus,这意味着我不需要qdbus。
对于是的,因为您没有klipper,但我想还是要提到它,只是为了让您烦恼它的正确完成方式。
PS:不要复制该C#代码,Task.Result可能会死锁。
private static async System.Threading.Tasks.Task<string> GetClipboardContentsAsync()
{
string clipboardContents = null;
Tmds.DBus.ObjectPath objectPath = new Tmds.DBus.ObjectPath("/klipper");
string service = "org.kde.klipper";
using (Tmds.DBus.Connection connection = new Tmds.DBus.Connection(Tmds.DBus.Address.Session))
{
await connection.ConnectAsync();
IKlipper klipper = connection.CreateProxy<IKlipper>(service, objectPath);
clipboardContents = await klipper.getClipboardContentsAsync();
} // End Using connection
return clipboardContents;
}
private static string GetClipboardContents()
{
return GetClipboardContentsAsync().Result;
}
private static async System.Threading.Tasks.Task SetClipboardContentsAsync(string text)
{
Tmds.DBus.ObjectPath objectPath = new Tmds.DBus.ObjectPath("/klipper");
string service = "org.kde.klipper";
using (Tmds.DBus.Connection connection = new Tmds.DBus.Connection(Tmds.DBus.Address.Session))
{
await connection.ConnectAsync();
IKlipper klipper = connection.CreateProxy<IKlipper>(service, objectPath);
await klipper.setClipboardContentsAsync(text);
} // End using connection
}
private static void SetClipboardContents(string text)
{
SetClipboardContentsAsync(text).Wait();
}
评论
请参阅来自unix.SE的相关问题:unix.stackexchange.com/questions/30093/…stackoverflow.com/questions/749544/pipe-to-from-clipboard
vim [enter]“ + P:3(运行vim,然后从“注册-即系统剪贴板-粘贴文本”)。这样一来,您就可以掌握最好的文本编辑器(其中之一),因此可以使用:w filename。另外,我总是在tmux中运行vim,这意味着如果我需要将一些文本复制到终端上,我只需选择(用v或V进行行选择),然后选择“ + y(将其拉或复制到剪贴板),然后创建一个新的tmux窗格,并可以
从macOS终端应用程序或类似物中通过ssh使用完整的非GUI Ubuntu的情况如何?