${SOME_VAR##foo/}
-bashзамена переменной.
Ищет совпадение с шаблоном foo/
от начала строки(SOME_VAR
значения переменной )и усекает левую часть, включая шаблон.
Пример:
s="foo/some#foo#textfoo/textlast"
echo ${s##foo/}
some#foo#textfoo/textlast
Обратите внимание , этот ${s##foo/}
эквивалентен ${s#foo/}
, потому что он ищет только первое вхождение шаблона foo/
с начала строки.
При этом ${s##*foo/}
будет обрезана левая часть допоследнегосовпадающего шаблона (включительно)
echo ${s##*foo/}
textlast
Использование cd
в качестве аргумента команды find -exec
приведет к смене каталога внутри команды find
, когда команда find
завершит работу, вы все еще находитесь в начальном каталоге.
Я бы использовал
cd "$(find. -type d -name "MCsniperPY-master" -print | head -1)"
где
find. -type d -name "MCsniperPY-master" -print
найдите все каталоги с именем «MCsniperPY -master» и затем распечатайте head -1
сохранится первый (вы можете пропустить, если уверены, что он только один)cd "$(... )"
перейдет cd
в этот каталог (или вернет вас обратно в каталог $HOME
, если ничего не будет найдено)Вы можете использовать $CDPATH
, в котором указан набор каталогов для поиска при использованииcd