Bash Listing Files in a Directory and Testing whether Specific Files Exist in Directories

From NovaOrdis Knowledge Base
Revision as of 00:26, 4 December 2019 by Ovidiu (talk | contribs) (→‎Overview)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Internal

Overview

To list files:

local dir=...

for f in ${dir}/*; do
  [[ -f ${f} ]] && echo -n "$(basename ${f}) "
done

To list directories, replace -f with -d.

find: To further research, it seems the following approach does not work because if there is more than one directory, the first iteration assigns a multi-line to d:

for d in $(find ${dir} -name "*-something" -type d); do
  debug "d: ${d}"
  ...
done