Linux 如何将pwd的结果同步复制到剪贴板

news2024/12/23 9:40:29

pwd是我们经常使用的一个命令,它的作用是显示当前所在路径。

不过,很多时候我们使用pwd命令不仅仅是查看当前路径,而是复制路径

通常情况下,使用pwd命令进行复制路径的操作如下:

  1. 使用pwd显示路径(键盘)
  2. 使用鼠标选中回显的路径 (鼠标)
  3. 按住ctrl+shift+c复制路径 (键盘)
  4. 使用ctrl+shift+v粘贴路径 (键盘)

这里面包含了两次键盘、鼠标的切换,有没有觉得很麻烦?

此时,一个想法很自然的浮现在我们心中:

如果在使用pwd的时候可以在显示路径的同时将路径复制到剪贴板就好了,这样只需要执行步骤1和4。

那么这个愿望是否可以实现呢?

答案是肯定的。

接下来就让我们来看看怎么实现吧。

思路

为了达到目的,我们要做的其实很简单,那就是将pwd输出的内容复制到剪贴板。

但是pwd本身不具备这个能力,因此,我们需要使用其它工具来辅助我们达到这个目的。

这个工具就是xclip,它可以将输入重定向到剪贴板。

所以,我们只需要将pwd的输出使用管道|传递给xclip就可以了。

原型

首先,安装xclip工具:

sudo apt install xclip

然后,使用以下命令将pwd的输出复制到剪贴板:

pwd | xclip -selection clipboard

接下来让我们先看下效果:

# 查看当前路径
➜  ~ pwd
/home/ubuntu
# 执行命令
➜  ~ pwd | xclip -selection clipboard       
# 键盘按下ctrl+chift+v进行拷贝,查看结果
➜  ~ /home/ubuntu

➜  ~

可以看到,pwd的输出确实已经复制到了剪贴板上。

优化

经过上面的操作,我们的命令原型已经有了。

但是这里有一个问题,那就是路径的末尾有一个换行符/home/ubuntu下有一个空行,那就是换行符导致的),这导致我们需要手动删除这个换行符,不方便。

为了去除路径末尾的换行符,我们可以使用echo -n 命令,从而直接输出 pwd 的结果而不带换行符:

echo -n $(pwd) | xclip -selection clipboard

再测试一下:

➜  ~ echo -n $(pwd) | xclip -selection clipboard   
# 键盘按下ctrl+chift+v进行拷贝
➜  ~ /home/ubuntu
➜  ~

这次我们完美地复制了路径,末尾没有换行符。

最后,我们在命令的末尾添加&& pwd,这样我们就实现了既显示路径又将路径复制到剪贴板的功能:

echo -n $(pwd) | xclip -selection clipboard && pwd

部署

这条命令显然太长了。

敲这条命令的效率还不如使用鼠标呢。

因此,我们要简化操作,方法就是使用别名,即将命令命名为cpwd,并将其添加到.bashrc.zshrc中:

# 添加命令
echo "alias cpwd='echo -n \$(pwd) | xclip -selection clipboard && pwd'" >> ~/.bashrc
# 使命令在当前终端生效
source ~/.bashrc

这样我们只需要在终端运行cpwd命令就可以了。

扩展

我们经常会使用ssh命令远程登录到其它计算机上,并且使用scp命令传输文件。

使用scp命令时需要指定路径,因此需要手动复制。

那么我们是否可以将cpwd部署到远程计算机上,从而实现路径的复制呢?

答案是可以的,并且部署方式一致。

但是当你远程使用cpwd命令时可能会遇到如下错误:

Error: Can't open display: (null)

这个错误的原因是xclip依赖于X11图形环境来访问剪贴板。

但是当我们通过ssh远程登录到计算机上时,默认情况下是没有访问本地X11图形环境的权限的。

因此远程计算机上的xclip无法操作我们本地的剪贴板,也就无法将路径拷贝到我们本地的剪贴板上。

为了解决这个问题,我们可以使用X11转发功能,将X11图形环境的显示输出从远程计算机重定向到本地主机。

原理解释清楚后,操作起来其实很简单,使用-X参数即可:

ssh -X user@remote_host

总结

我们通过各种命令的组合,创建了一个新的cpwd命令,从而让我们能够方便地复制当前路径,并且拓展到了远程登录的场景。希望对大家有帮助~
最后,欢迎大家关注我的公众号《嵌入式3分钟》,一起学习嵌入式!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2113504.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计选题推荐-健康健身追踪系统-运动健身系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

00Mac安装playwright

文章目录 前言一、执行以下命令安装二、安装如果报错zsh: command not found: pip三、安装浏览器驱动 前言 现在常用的三个自动化测试(或者爬虫)库,是Selenium、Puppeteer、Playwright。Playwright是未来趋势,主要学习Playwright…

资料分析笔记(花生)

preparation 资料分析首先最重要的是时间/时间段分小互换 一、速算技巧 加法技巧 1.尾数法 在多个数字精确求和或求差时,从“尾数”入手,为保证精确与速度,一般可观察两位。 求和题目中,若四个选项中后两位都不同,…

小琳Python课堂:深入理解Python对象:状态、创建与管理

大家好,这里是小琳Python课堂。今天我们继续深入理解Python对象的状态、创建与管理。让我们一起来探索这些概念,以帮助你更好地掌握Python编程。 一、Python对象的状态 1. 实例属性与类属性 Python对象的属性分为实例属性和类属性。实例属性是对象独有…

TRIZ在充电桩安全中的应用探究

在当今电动汽车日益普及的时代,充电桩的安全问题至关重要。TRIZ(发明问题解决理论)可以为提升充电桩的安全性提供强大助力。具体步骤如深圳天行健企业管理咨询公司下文所述: 一、充电桩安全面临的问题 1.电气安全风险&#xff1a…

Ansys Zemax 高级实战(HUD)开启光学新征程

亲爱的光学设计爱好者们: 你是否渴望在车载 HUD 设计领域大展身手?是否想深入了解 Ansys Zemax 的强大功能和应用技巧?现在,机会来了! 我们将于 2024年10月24日至25日 举办为期两天的 Ansys Zemax 高级实战&#xff…

深度学习--对抗生成网络(GAN, Generative Adversarial Network)

对抗生成网络(GAN, Generative Adversarial Network)是一种深度学习模型,由Ian Goodfellow等人在2014年提出。GAN主要用于生成数据,通过两个神经网络相互对抗,来生成以假乱真的新数据。以下是对GAN的详细阐述&#xff…

【原创】java+swing+mysql简易员工管理系统设计与实现

个人主页:程序员杨工 个人简介:从事软件开发多年,前后端均有涉猎,具有丰富的开发经验 博客内容:全栈开发,分享Java、Python、Php、小程序、前后端、数据库经验和实战 文末有本人名片,希望和大家…

web登录校验

基础登录功能 LoginController PostMapping("/login")Result login(RequestBody Emp emp) {log.info("前端,发送了一个登录请求");Emp e empService.login(emp);return e!null?Result.success():Result.error("用户" "名或密…

isxdigit函数讲解 <ctype.h>头文件函数

目录 1.头文件 2.isxdigit函数使用 方源一把抓住VS2022&#xff0c;顷刻 炼化&#xff01; ​​​​​​​ 1.头文件 以上函数都需要包括头文件<ctype.h> &#xff0c;其中包括 isxdigit 函数 #include<ctype.h> 2.isxdigit函数使用 isxdigit 函数是判断字符…

Leetcode Hot 100刷题记录 -Day10(合并区间)

合并区间 问题描述&#xff1a; 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti,endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 示例 1&#xff1a; 输入&…

vscode从本地安装插件

1. 打开VSCode。 2. 点击左侧菜单中的“扩展”&#xff08;或按CtrlShiftX&#xff09;。 3. 点击“更多操作”&#xff08;三个点&#xff09;> “从VSIX安装”。 4. 选择下载的.vsix文件。 5. 点击“安装”即可安装插件。

IstoreOS安装的1Panel无法安装应用

IstoreOS安装的1Panel无法安装应用&#xff0c;无法安装OpenResty&#xff0c;创建Docker提示文件不存在 这个路径&#xff1a; /root/Configs/1Panel/1panel/apps/openresty/openresty/www /root/Configs/1Panel/1panel/apps/openresty/openresty/1pwaf/data /root/Configs/…

请求响应-02.请求-postman工具

一.前后端分离开发 当前主流的开发模式是前后端分离开发&#xff0c;每开发一个功能&#xff0c;就需要对该功能接口进行测试&#xff0c;当前我们的测试方法是直接将url地址输入到浏览器中&#xff0c;查看web页面是否满足我们的要求。但是浏览器发起的请求全部都是GET请求&am…

【笔记】408刷题笔记

文章目录 三对角三叉树求最小带权路径UDP报文首部和TCP报文首部IP报文首部TCP报文首部UDP报文首部 刷新和再生的区别地址译码 为了区分队空队满&#xff0c;可以使用三种处理方式 1&#xff09;牺牲一个单元 队头指针在队尾指针的下一位置作为队满的标志 队满条件&#xff1a;(…

每日一题,力扣leetcode Hot100之238.除自身以外数组的乘积

乍一看这个题很简单&#xff0c;但是不能用除法&#xff0c;并且在O(N)时间复杂度完成或许有点难度。 考虑到不能用除法&#xff0c;如果我们要计算输出结果位置i的值&#xff0c;我们就要获取这个位置左边的乘积和右边的乘积&#xff0c;那么我新设立两个数组L和R。 对于L来…

Hive 本地启动时报错 Persistence Manager has been closed

Hive 本地启动时报错 Persistence Manager has been closed 2024-09-07 17:21:45 ERROR RetryingHMSHandler:215 - Retrying HMSHandler after 2000 ms (attempt 2 of 10) with error: javax.jdo.JDOFatalUserException: Persistence Manager has been closedat org.datanucle…

使用亚马逊Bedrock的Stable Diffusion XL模型实现文本到图像生成:探索AI的无限创意

引言 什么是Amazon Bedrock&#xff1f; Amazon Bedrock是亚马逊云服务&#xff08;AWS&#xff09;推出的一项旗舰服务&#xff0c;旨在推动生成式人工智能&#xff08;AI&#xff09;在各行业的广泛应用。它的核心功能是提供由顶尖AI公司&#xff08;如AI21 Labs、Anthropic…

基于 RocketMQ 的云原生 MQTT 消息引擎设计

作者&#xff1a;沁君 概述 随着智能家居、工业互联网和车联网的迅猛发展&#xff0c;面向 IoT&#xff08;物联网&#xff09;设备类的消息通讯需求正在经历前所未有的增长。在这样的背景下&#xff0c;高效和可靠的消息传输标准成为了枢纽。MQTT 协议作为新一代物联网场景中…

Windows 11安装nvm教程

1、nvm是什么 nvm 全名 node.js version management&#xff0c;是一个 nodejs 的版本管理工具。通过它可以安装和切换不同版本的 nodejs&#xff0c;主要解决 node 各种版本存在不兼容现象。   在工作中&#xff0c;我们可能同时在进行2个或者多个不同的项目开发&#xff0…