在文件管理器中,按下 CTRL+C 等效于将文件(而不是文件名)复制到剪贴板的命令行是什么?
例如,当您想将终端目录中的文件复制到剪贴板,然后快速将文件粘贴到文件管理器中的目录中时,此功能非常有用且快捷。还有其他功能。
答案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
很棒,不是吗?
答案2
我听说 xclip 还支持使用xclip-copyfile
和复制文件xclip-pastefile
。虽然我还没有真正用过它,但它可能是一个解决方案。
答案3
Mac OS 有pbcopy
更简单的语法:
pbcopy < ~/.ssh/id_rsa.pub
或者
cat ~/.ssh/id_rsa.pub | pbcopy
pbcopy
在 Ubuntu 上使用以下工具进行模拟xclip
(通过 安装sudo apt install xclip
):
alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'
答案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
到文件管理器中