Você pode usar sed para remover o restante - tudo começando com a última barra :
mpc -f %file% | head -1 | sed 's:/[^/]*$::'
O padrão /[^/]*$ corresponde a uma barra, seguida por qualquer caractere, exceto barra, até o final da linha. É substituído pela string vazia.
O head -1 ignora alguma saída de status seguindo a linha que queremos - mas veja abaixo como não prendê-los em primeiro lugar.
Caso você não esteja acostumado a sed, o comando pode parecer incomum por causa do : usado. Você pode ter visto os comandos sed com / como separador antes, como 's/foo/bar/' - prefiro usar o separador : para legibilidade, pois a expressão contém / em si. Alternativamente, poderíamos escapar do / na expressão: 's/\/[^\/]*$//' - que não o torna mais legível.
A maneira como você o usa com mpc fornece duas linhas de status adicionais. A opção -q para quiet desliga toda a saída. Você precisa combinar -q com a impressão explícita do arquivo atual para obter a linha que você precisa, e nada mais:
mpc -q -f %file% current | sed 's:/[^/]*$::'
Em vez de remover tudo a partir da última barra , pode-se imprimir explicitamente tudo antes da última barra :
mpc -q -f %file% current | sed 's:^\(.*\)/.*$::'
Corresponde a quaisquer caracteres que sejam seguidos por / e quaisquer outros caracteres; Ele corresponde o máximo possível, para que o / correspondido seja o último.