我使用 Ranger 作为文件管理器,但每次我想要发送类似图像的内容(通过复制粘贴)时,我都需要打开 GUI 文件管理器,复制文件,然后将其粘贴到浏览器上。
如何使用终端上的任何类型的二进制文件实现这一点?(图像、pdf 等)
答案1
在 Ranger 中,单击所需文件,按yp。文件的完整路径将被复制到剪贴板中。
然后将其粘贴到浏览器中的任何位置,例如上传字段。
yp在 ranger 中相当于 GUI 文件管理器的Ctrl+ 。c
答案2
如果我正确理解了 OP 的问题,那么可以通过使用来实现xclip
。
使用示例:
xclip -selection clipboard -t image/png /tmp/example.png
您必须调整此示例以将其包含在游骑兵地图或脚本中,特别是当您想自动识别各种哑剧类型时。
可能有助于实现这一点的命令是file -b --mime-type example-file
。
答案3
您可以在ranger中运行以下命令:
:shell echo -n file://%d/%f | xclip -selection c -t text/uri-list
解释:
正如 @asoundmove 指出的那样,您要复制的文件的 MIME 类型很重要。您可以使用 显示剪贴板的 MIME 类型目标xclip
。例如,当我使用 复制图像时gthumb
,我得到以下信息:
xclip -selection c -o -t TARGETS
TIMESTAMP
TARGETS
MULTIPLE
x-special/gnome-copied-files
text/uri-list
UTF8_STRING
COMPOUND_TEXT
TEXT
STRING
text/plain;charset=utf-8
text/plain
要打印特定目标 MIME 类型的剪贴板内容,请执行以下操作:
$ xclip -selection c -o -t text/uri-list
file:///home/username/image.jpg
或者
$ xclip -selection c -o -t x-special/gnome-copied-files
copy
file:///home/username/image.jpg
要将 uri 复制到剪贴板以便 GUI 应用程序(例如文件浏览器)可以解释它,您需要知道该应用程序希望数据采用哪种格式。通常,text/uri-list 有效。您可以按如下方式实现您想要的效果:
echo -n file:///home/username/image.jpg | xclip -selection c -t text/uri-list