BASH:给定部分目录名...如何进入该目录

BASH:给定部分目录名...如何进入该目录

使用 bash 脚本时遇到问题。我需要cd进入使用部分名称的目录,例如binutil完整目录名称可能位于的位置binutil-2.36

我需要这样做,以便每个包都有新版本时我就不必更改我的脚本。

有任何想法吗?

答案1

你永远无法改变当前路径底层会话中,只有会话命令运行。
但是,您可以来源你的脚本:source script.sh <dir>

read -d '' -r < <( \
find "${1:-.}" -maxdepth 1 -type d -name 'binutil-*' -print0 | sort -rVz) && cd "$REPLY"

.bashrc或者在or中创建一个函数.bash_aliases

cd-binutil(){ # <dir>
    read -d '' -r < <( \
    find "${1:-.}" -maxdepth 1 -type d -name 'binutil-*' -print0 | sort -rVz) && cd "$REPLY"
}

source ~/.bash_aliases将会把更改应用到当前会话。

相关内容