如何从终端复制文件,然后将其粘贴到浏览器上?

如何从终端复制文件,然后将其粘贴到浏览器上?

我使用 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

相关内容