使用参数扩展删除path的一部分…但是如何?

我需要删除部分

MAN1 / bmtoa.1.gz

从完整的path

/usr/share/man/man1/bmtoa.1.gz

所以它的结果

在/ usr / share / man中/

我试过$ {path#[!/] * / *}和$ {path#/ * / *},但都导致错误的path。

这将工作${path%/*/*} ,但从后面到前面。 这里是一个很好的如何在bash中切断string。

如果你可以处理/usr/share/man/man1 ,那么你可以使用dirname /usr/share/man/man1/bmtoa.1.gz ,但是既然你表示你需要man1也要脱手,那么你将不得不雏菊链他们:

 dirname `dirname /usr/share/man1/bmtoa.1.gz`