【发布时间】:2011-04-24 07:45:12
【问题描述】:
问题:是否有一个简单的 sh/bash/zsh/fish/... 命令来打印我提供给它的任何文件的绝对路径?
用例:我在目录/a/b 中,我想在命令行上打印文件c 的完整路径,以便我可以轻松地将其粘贴到另一个程序中:/a/b/c。在处理长路径时,简单但一个小程序可能会为我节省 5 秒左右的时间,最终加起来。所以我很惊讶我找不到一个标准的实用程序来做这件事——真的没有吗?
这是一个示例实现,abspath.py:
#!/usr/bin/python
# Author: Diggory Hardy <diggory.hardy@gmail.com>
# Licence: public domain
# Purpose: print the absolute path of all input paths
import sys
import os.path
if len(sys.argv)>1:
for i in range(1,len(sys.argv)):
print os.path.abspath( sys.argv[i] )
sys.exit(0)
else:
print >> sys.stderr, "Usage: ",sys.argv[0]," PATH."
sys.exit(1)
【问题讨论】:
-
我认为@DennisWilliamson 的答案(使用 -m 选项)对于(通常)更具可移植性和处理不存在的文件来说是优越的。
-
或者弗利姆的回答;两者都是很好的解决方案。然而,Bannier 最好地回答了 我的 原始问题。
-
OSX 用户:见this answer