您可以使用以下内容:
pax[/home/pax]> cd "$(dirname "$(find / -type f -name ls | head -1)")"
pax[/usr/bin]> _
这将定位第一个ls常规文件,然后更改到该目录.
关于每一点什么:
> find将从/搜索开始,列出所有常规文件(-type f),称为ls(-name ls).还有其他的东西你可以添加来寻找进一步限制您获得的文件.
>通过头-1的管道将过滤除了第一个以外的所有.
> $()是一种获取命令输出并将其放在命令行上的另一个命令的方式.
> dirname可以采取一个完整的文件规范,并给你的路径位.
> cd只是改变到那个目录.
如果按顺序执行每一位,您可以看到会发生什么:
pax[/home/pax]> find / -type f -name ls
/usr/bin/ls
pax[/home/pax]> find / -type f -name ls | head -1
/usr/bin/ls
pax[/home/pax]> dirname "$(find / -type f -name ls | head -1)"
/usr/bin
pax[/home/pax]> cd "$(dirname "$(find / -type f -name ls | head -1)")"
pax[/usr/bin]> _