在 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
它应该可以工作。
此外,../../
的目录是 ../../../
,这也可能会给您带来一些问题。如果您已经在目录中,则无需使用 dirname
。 dirname
计算父目录。
正在尝试获取 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
它应该可以工作。
此外,../../
的目录是 ../../../
,这也可能会给您带来一些问题。如果您已经在目录中,则无需使用 dirname
。 dirname
计算父目录。