Linux - 将文件复制/剪切到剪贴板

Linux - 将文件复制/剪切到剪贴板

我想知道是否可以将文件复制或剪切到剪贴板,然后稍后将其粘贴到另一个目录中。我做了快速研究,只找到了有关如何将文件内容复制到剪贴板的信息,但没有找到文件本身。

答案1

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

实际上情况要复杂一些,因为您不能做相反的事情——从文本编辑器复制文件名列表并将其粘贴到文件管理器中。

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

sudo apt-get install xclip

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

cat ./myfile.txt|xclip -i

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

如果你想将数据复制到“剪贴板”选择,以便可以使用 Ctrl-V 将其粘贴到应用程序中,你可以这样做

cat ./myfile.txt|xclip -i -selection clipboard

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

find ${PWD} -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list

(至少这在 KDE 中对我来说是可行的)。现在你可以将其包装成一个小脚本,你可以调用它,例如cb

#!/bin/sh
xclip -i -selection clipboard -t text/uri-list

然后将其放入~/bin,设置其可执行位并像这样使用它:

find ${PWD} -name "*.txt"| cb

很棒,不是吗?

来源:askubuntu

答案2

这可以在 Digital Ocean 上的 Mac 终端和 Linux 上运行。

pbcopy < ~/.ssh/id_rsa.pub

答案3

如果你决定将文件小路在系统剪贴板上,您可以在您的中使用它~/.bashrc

yankpath() {
  filepath=$(realpath "$1")
  # We use the pipe to put the file name on the clipboard.
  # If we did "xclip -selection clipboard $filepath", the
  # contents of the file would be on the clipboard.
  # -rmlastnl removes the ending newline from the file path.
  echo $filepath | xclip -rmlastnl -selection clipboard
}

然后,您就可以yankpath ./a_file看到整个文件路径,并且它a_file位于您的 X 系统剪贴板上。

答案4

如果您想在终端中复制文件,然后将其粘贴到文件管理器中:将其保存为脚本cpfiles

#!/bin/bash
{
    for i in "$@"; do
        echo -en "file://$(realpath ${i})\n"
    done
} | xclip -i -sel c -rmlastnl -t text/uri-list

用它

cpfiles '/path/to/file1/' 'path/to/file2'

然后粘贴Ctrl+v到文件管理器中

相关内容