说我想列出文件夹的内容并将其直接粘贴到聊天窗口中给朋友看。
我意识到我可以ls > filename.txt
创建一个filename.txt
包含这些内容的文件();然后我必须打开或打印该文件并手动选择并复制文本块(这可能会令人烦恼/乏味ls
)我显然也可以直接从终端窗口内选择并复制输出。
将标准输出简单地传输到剪贴板会更快/更容易。
什么终端命令允许我做到这一点?
答案1
这可以通过以下方式完成
xsel
或者
xclip
命令行实用程序。由于这两个程序都不是 Ubuntu 默认自带的,因此您需要先通过 Ubuntu 软件或终端安装它们。以下是使用终端安装它们的方法(但请记住,您只需要这两个程序中的一个):
sudo apt install xsel
sudo apt install xclip
笔记:如果你在 Windows Subsystem for Linux (WSL) 中使用 Ubuntu,请参阅此内容Snap Shot 的答案反而。
现在举几个例子。如果你想将输出复制ls
到剪贴板,你可以这样做:
和
xsel
:ls | xsel -ib
和
xclip
:ls | xclip -sel clip
这当然也可以用于其他终端命令。假设您想将您的网络信息粘贴到帮助论坛中。
和
xsel
:sudo lshw -C network | xsel -ib
和
xclip
:sudo lshw -C network | xclip -sel clip
使用新的 bash 别名使这变得更容易!
编辑您的~/.bash_aliases
文件(如果它尚不存在,请先使用 创建它touch ~/.bash_aliases
)。
然后加一(取决于您决定采用哪个程序)以下内容:
alias copy='xclip -sel clip'
或者
alias copy='xsel -ib'
然后保存并关闭。
现在(重新启动终端后),您可以通过管道将标准输出发送到剪贴板copy
(或您决定命名的新别名)。
例如:
ls | copy
答案2
如果您尝试使用 Windows Subsystem for Linux (WSL) 中的 Ubuntu 将文本复制到剪贴板,xsel
则xclip
除非您使用 X Windows,否则将无法工作,因为剪贴板仅适用于图形。但是,要将终端标准输出通过管道传输到 WSL Ubuntu 中的剪贴板,您可以使用clip.exe
。然后,您可以使用标准粘贴命令粘贴到 WSL Ubuntu 终端中,复制的文本也将在 Windows 中可用。例如,
pwd | clip.exe
将把当前工作目录复制到(Windows)剪贴板。
当寻找在 WSL 中复制/粘贴文本的方法时,此搜索结果出现在顶部,因此我认为值得提一下,这样读者就不会在 Ubuntu 中不必要地安装 xsel 或 xclip,而是使用clip.exe
。
答案3
答案4
在命令行中复制文件的路径,粘贴后不添加任何新行:
realpath filename | xclip -r -selection c
需要进行切换-r
以避免粘贴后产生新的线条。