关键:把find的结果(目标文件夹或目录)作为参数交给cd

1

问题和需求:

假设只记得在某个路径里有一个名称中包含了"WPS"3个字母的文件夹,但是具体路径想不起来了。现在需要找到它,并立即跳转到这个文件夹里面去。

常规的做法分两步:

「1」find [搜寻目录] -name "WPS" -type d

「2」cd (第「1」步得到的文件夹路径)

现在觉得这样比较麻烦,就想通过一步到位的办法,直接就查找、跳转到目标文件夹里去。

关键:

关键其实就在于要把find命令得到的文件夹路径作为参数提供给cd命令执行。

尝试过经常被提到的使用xargs参数的方法,但是失败了!

(find / -name "*WPS*" -type d | xargs cd)

# 失败了

解决:

使用「1」一对反引号(``)或者「2」美元符号加一对小括号$()可以解决这个问题。

具体为:

cd `find / -name "*WPS*" -type d `

# 或者

cd $(find / -name "*WPS*" -type d )

第「2」种更容易看一点,毕竟反引号(``)和单引号一眼看过去不是那么容易区分。

验证:

简便起见,就以查找并跳转进入当前目录下的某个子目录为例来演示。

2

在当前目录下,想查找并跳转到名称中包含了"WPS"3个字母的文件夹中去,同时,在当前目录下「有且只有」一个这样的文件夹。

「有」这样的文件夹,那么find的结果就不是空,否则cd就跳转到用户目录下去了。

「只有」一个这样的文件夹,那么find的结果是唯一的,最后跳转的目标才是确定的。

3

查找、跳转,一步到位!

另外,顺便提一下一个小窍门:比如千辛万苦进入了一个很多层的目录下了,一不小心输入了cd一下子回到了用户目录下,怎么找回去呢?其实很简单,cd后面跟一个短横就可以了:

cd -

4

该命令等同于

cd $OLDPWD

关于这一点在bash的手册页(可使用命令man bash访问其手册页)中有介绍,

An argument of - is equivalent to $OLDPWD.

并且它还会返回上一次目录的物理路径,并显示在shell中。

结束语:

其实上面这样的cd和find的组合,还是有很大的局限性的,只能说在某些时候可以用用吧。

在github上有一个项目,名字叫「autojump」,star数高达8.7K,也是很受欢迎了!它的介绍是「A cd command that learns - easily navigate directories from the command line 」,在终端里使用单字母「j」作为命令,后面可以直接附带要跳转的文件夹的名称或部分名称,也可以附带参数+要跳转的文件夹的名称或部分名称,就会跳过去了。这个使用起来就比上面的cd和find的简单组合的容错性、可用性大多了。

5

(笔记留存)

砚湖@飘香生活馆

二〇一九年一月十一日

linux 跳转到文件夹,一步到位,linux下查找并跳转文件夹相关推荐

  1. 搜索linux中大于m文件,linux 下查找大于100M的文件(转)

    命令行如下 find . -type f -size +1000000k Linux系统下查找大文件或目录的技巧 当硬盘空间不够时,我们就很关心哪些目录或文件比较大,看看能否干掉一些了,怎么才能知道呢 ...

  2. Android Studio在项目文件夹/build/intermediates/下找不到bundles文件夹和packaged-classes文件夹

    build之后在项目文件夹/build/intermediates/下找不到bundles文件夹,是因为bundles文件夹改为了packaged-classes文件夹,如下图所示: 另外还需要注意的 ...

  3. linux 删除含有关键词的文件_linux下查找包含关键字的文件

    在linux下如果要查找包含某个关键字的文件,如要在nagios目录下搜索带有关键字"store-rd-sys"的文件,在终端下运行命令: /usr/local/nagios/et ...

  4. python将文件转成linux格式,怎么用python在Windows系统下,生成UNIX格式文件

    如何用python在Windows系统下,生成UNIX格式文件 平时测试工作中,少不了制造测试数据.最近一个项目,我就需要制造一批可在UNIX下正确读取的文件.为确保这批文件能从FTP下载成功,开发叮 ...

  5. linux mysql 运行sql文件命令大全_linux下执行mysql的sql文件

    linux下执行mysql的sql文件 mysql -uroot -proot 进入到mysql 然后执行source /var/ftp/pub/sogoodsoft.sql; 即可. www.2ct ...

  6. Linux下查找大于1G的文件,并删除

    命令很简单: [istester@istester.com ~]$ find /APP/istester/ -type f -size +1G | xargs rm 执行的时候,最好分两步走 , 先执 ...

  7. Ubuntu虚拟机设置共享文件夹后/mnt下找不到hgfs文件夹

    --------------------------------- 今天用VMware装Ubuntu时设置共享文件夹出了问题.设置共享文件夹时没有报错,但虚拟机内/mnt下找不到hgfs文件夹. 找了 ...

  8. ie如何导入html收藏夹,xp系统下怎样将360浏览器收藏夹导入IE浏览器

    Internet Explorer是一款非常经典的浏览器,其具有非常强大的功能,有些时候我们还真离不开它.为了更好地查找其他资料,一些xp系统用户就想将其他浏览器的收藏夹导入进去,这样就不用来回的切换 ...

  9. 电脑中重复文件怎么删除?教你查找并删除重复文件

    电脑中重复文件怎么删除?久友小编教你查找并删除重复文件 相信大家都有这样的情况,我们经常在电脑中下载文件或者歌曲,时间一长就忘记了.最后导致这些文件占用了大量的硬盘空间.下面小编就推荐大家一款小软件, ...

最新文章

  1. centos7安装docker安装rabbitmq(2021)亲测有效!!!
  2. Calendar的那些神坑
  3. svn merge 回滚
  4. C++ 获取char*的长度
  5. html img 自动缩放,网页HTML 5图片自适应屏幕 img等比例缩放大小代码
  6. 自学JavaWeb系列-JSP教程!
  7. Android:获取并制作矢量图动画
  8. 2012-2013考研英语词汇
  9. c# 操作Word总结(四)——书签使用
  10. 马士兵oracle_,马士兵oracle视频教程学习笔记个人整理
  11. dxf解析python_Python 读取DXF文件
  12. 电销卡在哪里办理,有用过的没
  13. 关于数据分析,管理者常犯的4个错误
  14. 8-14-粘包问题、(通过简单报头)解决粘包问题、定制复杂报头
  15. mac finder 如何查看隐藏文件夹
  16. C++中运行一个程序的内存分配情况及qt中的内存管理机制
  17. 音乐或视频下载:Chrome下载媒体资源
  18. 基于内容的电影推荐:物品画像和用户画像
  19. 【LiteOS】LiteOS移植常见问题分析
  20. MySQL索引机制(详细+原理+解析)

热门文章

  1. 彻底明白什么是动态代理?
  2. Know vag com cables
  3. 试试画面快煮面,给自己味蕾不一样的体验
  4. illustrator cc 导出html,提取 CSS | Illustrator
  5. 低代码平台-宜搭 如何调用高德平台API地图
  6. 美制电线标准AWG与公制、英制单位对照
  7. 2021年全球汽车充电桩行业调研及趋势分析报告
  8. 华三服务器开机cas选择系统,H3C CAS平台账号管理
  9. 成人最佳睡眠时间6小时30分 晚上10时就寝最科学
  10. 【AI】百度ai人脸识别