在 bash 中使用 find ... -name 命令获取文件夹名称

get folder name with find ... -name command in bash

正在尝试获取 venv 文件夹的名称以在位于项目内的 bash 脚本中激活它。因为有人可以为 venv 使用另一个名称,例如 'someones_env'

projectdir=$(cd ../../ && pwd)
echo "$(dirname "$projectdir")"

venvdir=$(find "$(dirname "$projectdir")" -name '*env')
echo "$(dirname "$venvdir")"

source "$(dirname "$venvdir")"/bin/activate

但 $venvdir 与 $projectdir 相同,而不是 'someones_env'

我做错了什么? 谢谢

*env文件夹的目录就是工程目录,所以dirname "$venvdir"就变成了工程目录。没有 dirname 它应该可以工作。

此外,../../ 的目录是 ../../../,这也可能会给您带来一些问题。如果您已经在目录中,则无需使用 dirnamedirname计算父目录。