首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pwd与文件目录

pwd与文件目录
EN

Stack Overflow用户
提问于 2014-09-29 22:50:13
回答 1查看 1.4K关注 0票数 1

我有一个文件,我想得到那个文件所在的目录。在python中,我会这样做:

代码语言:javascript
复制
FILE_DIR = os.path.dirname(os.path.realpath(__file__))

我如何在shell脚本中做同样的事情呢?如果我使用pwd,我将得到我正在执行命令的文件夹的当前目录,而不是我正在执行的文件的文件夹(这正是我所需要的)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-29 22:55:40

在执行shell脚本时,$0是要执行的脚本的名称(参见Bash中针对初学者的变量章节中的特殊参数),相当于sys.argv[0]中的sys.argv[0](除非您已经调用了shift)。

dirname命令在Python中执行与os.path.dirname相同的操作。

没有可移植的直接等同于os.path.abspathos.path.realpath$0的东西。有一些特定于平台的方法(例如,在具有GNU的系统上使用readlink -f ),或者手动地将pwd与路径组合起来。请参阅Unix上的这个问题以获得各种不同的方法,但弗里普先生 回答似乎是最可移植的:

代码语言:javascript
复制
abspath=$(unset CDPATH && cd "$(dirname "$0")" && echo ${PWD}/$(basename "$0"))

当然,您也可以要求Python这样做:

代码语言:javascript
复制
abspath=$(python -c "import os; print(os.path.realpath(\"$0\"))"
absdir=$(dirname "${abspath}")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26110138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档