How to obtain the absolute path of a file via Shell (BASH/ZSH/SH)?

bash, path, shell

Solution

Use `realpath`

$ realpath example.txt
/home/username/example.txt

Problem

Question: is there a simple sh/bash/zsh/fish/... command to print the absolute path of whichever file I feed it? Usage case: I'm in directory `/a/b` and I'd like to print the full path to file `c` on the command-line so that I can easily paste it into another program: `/a/b/c`. Simple, yet a little program to do this could probably save me 5 or so seconds when it comes to handling long paths, which in the end adds up. So it surprises me that I can't find a standard utility to do this — is there really none? Here's a sample implementation, 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) ```

Original source

Related problems