Любая попытка сценария команды cd
должна гарантировать, что команда выполняется в текущей оболочке. В противном случае, если он запускается в дочерней оболочке, он не будет работать так, как вам нужно, так как текущий рабочий каталог родителя не будет изменен.
GNU find имеет -printf, который можно использовать для печати каталога любых найденных файлов. Вывод команды find может быть передан в cd
с подстановкой команд.
cd $(find . -name Subscription.java -printf '%h\n')
cd (в bash) игнорирует дополнительные аргументы, поэтому, если найдено несколько файлов, cd перейдет в каталог первого найденного файла.