How do I find out the canonicalised absolute pathname for a given command or file under Linux operating systems?
You need to use the realpath command. It will converts each filename argument to an absolute pathname, which has no components that are symbolic links or the special . (current directory) or .. (parent directory) entries.
The realpath command expands all symbolic links and resolves references to /./, /../ and extra '/' characters in the null-terminated string named by path to produce a canonicalized absolute pathname. The resulting pathname is stored as a null-terminated string, up to a maximum of PATH_MAX butes, in the buffer pointed to by resolved_path. The resulting path will have no symbolic link, /./ or /../ components.
The syntax is as follows:
realpath /path/to/file realpath /path/to/command
Type the following command:
ls -l /etc/motd
lrwxrwxrwx 1 root root 13 2007-10-06 04:52 /etc/motd -> /var/run/motd
/etc/motd is a symbolic link, which points to ./var/run/motd. To verify this and to print real absolute path, enter:
The -s option
If option -s is used realpath only removes . and .. directories, but not symbolic links from filename.
realpath -s /path/to/file
- 30 Cool Open Source Software I Discovered in 2013
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012
- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop