一步到位,linux下查找并跳转文件夹

作者: 15491f4b96fa | 来源:发表于2019-01-11 10:13 被阅读9次

关键:把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下查找并跳转文件夹

    关键:把find的结果(目标文件夹或目录)作为参数交给cd 问题和需求: 假设只记得在某个路径里有一个名称中包含了...

  • 批量删除.out 和.err文件

    查找当前文件夹下所有.out文件并删除 查找当前文件夹下所有.err文件并删除

  • Linux查找并批量删除文件夹

    find ./ -name "Cache" -type d -exec /bin/rm -rf {} +

  • Mac 下一些常用操作

    显示隐藏文件夹 跳转到指定目录 命令行下查看隐藏文件 查找相关进程 iterm 来回切换 session 删除多个...

  • linux批量查找并替换文件夹下所有文件的内容

    1.批量查找当前目录下文件的包含的内容 2.批量查找并替换当前文件夹下的文件内容 3.批量查找并替换某个文件夹下的...

  • find

    Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功...

  • (19)find命令概述

    Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功...

  • find命令/文件名后缀

    Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功...

  • Linux-find

    Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功...

  • Linux find and grep

    linux下的find文件查找命令与grep文件内容查找命令 linux下的find文件查找命令与grep文件内容...

网友评论

    本文标题:一步到位,linux下查找并跳转文件夹

    本文链接:https://www.haomeiwen.com/subject/eautdqtx.html