O pipe executa xargs em um subprocesso e xargs executa cd em um subprocesso. As alterações em um subprocesso não são propagadas para o processo pai.
Sentindo-se como um idiota agora. Por que isso não funciona?
echo "/some/directory/path" | xargs -n1 cd
O comando cd é embutido porque as informações sobre o diretório atual estão vinculadas a um processo e somente o shell embutido pode alterar o diretório atual do shell em execução.
Existem dois problemas com o seu código:
xargs não pode executar cd porque cd é um comando interno e xargs pode executar somente arquivos executáveis. cd em um subprocesso chamado de xargs , ele não terá nenhum efeito no processo pai, conforme explicado acima. A solução é executar um sub-shell, dentro dele executar cd e então você pode executar comandos no novo diretório atual.
ls | xargs -L 1 bash -c 'cd "$0" && pwd && ls'