How can I generate a list of files with their absolute path in Linux?

absolute-path, command-line, linux, ls

Solution

If you give `find` an absolute path to start with, it will print absolute paths. For instance, to find all .htaccess files in the current directory:

find "$(pwd)" -name .htaccess

or if your shell expands `$PWD` to the current directory:

find "$PWD" -name .htaccess

`find` simply prepends the path it was given to a relative path to the file from that path.

Greg Hewgill also suggested using `pwd -P` if you want to resolve symlinks in your current directory.

Problem

I am writing a shell script that takes file paths as input. For this reason, I need to generate recursive file listings with full paths. For example, the file `bar` has the path: ``` /home/ken/foo/bar ``` but, as far as I can see, both `ls` and `find` only give relative path listings: ``` ./foo/bar (from the folder ken) ``` It seems like an obvious requirement, but I can't see anything in the `find` or `ls` man pages. How can I generate a list of files in the shell including their absolute paths?

Original source