我试图找到我的 .csv 文件,然后 cd 进入他们的目录:
find Documents/notes -type f -name "*.csv" | head -1 | xsel -b
这会将第一个文件目录复制到我的剪贴板中,然后我想运行:
cd $(xsel -b)
但我当然不能,因为它包含不是目录的文件名。
有没有办法省略文件名?有一个更好的方法吗?
我试图找到我的 .csv 文件,然后 cd 进入他们的目录:
find Documents/notes -type f -name "*.csv" | head -1 | xsel -b
这会将第一个文件目录复制到我的剪贴板中,然后我想运行:
cd $(xsel -b)
但我当然不能,因为它包含不是目录的文件名。
有没有办法省略文件名?有一个更好的方法吗?
使用
bash
shell,启用**
模式(匹配*
,但也到达/
路径名中的过去),然后展开模式Documents/notes/**/*.csv
,然后cd
到第一个匹配的目录:对于
zsh
,它已经**
默认启用了该模式,这可以缩短为glob 限定符
([1]:h)
返回给定模式的第一个匹配的目录名称(“h”,如“路径头”)。将此限定符更改为(.[1]:h)
以使模式仅匹配常规文件(或此类文件的符号链接)。是的,仅使用
find
(需要-quit
支持):或者
它在第一场比赛时就中断了。
-quit
: