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

From NovaOrdis Knowledge Base
Revision as of 00:22, 4 December 2019 by Ovidiu (talk | contribs) (→‎Overview)
Jump to navigation Jump to search

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