关键:把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」种更容易看一点,毕竟反引号(``)和单引号一眼看过去不是那么容易区分。
验证:
简便起见,