Was it designed to function with filenames then?
Sent with Proton Mail secure email. ------- Original Message ------- On Thursday, May 26th, 2022 at 5:35 AM, Bernhard Voelker <m...@bernhard-voelker.de> wrote: > On 5/25/22 14:08, goncholden via Bug reports for the GNU find utilities wrote: > > > I am using the FIND command on a number of directories stored in FDIR array > > to execute HEAD on each file. How can I adapt the code so users can also > > include files as well as directories? > > > well, I don't think there's anything to adjust, because `find` already > accepts both files and directories as starting points. > > > hn=8 > > nf=${#fdir[@]} > > for (( i=0 ; i < $nf ; i++ )); do > > find "${fdir[$i]}" -type f \ > > -exec head -v -n "$hn" '{}' + > > done > > The synopsis of the GNU find command is > > > > find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] > > [expression] > > > > where [starting-point...] is zero or more paths. There is nothing stopping > > the user from passing files as starting points > > > no problem, find will just work well both with regular files or directories. > For the latter, it will descend the directory hierarchy, obviously. > > > Example, given: > > > > $ cat subdir/somefile > > foo > > bar > > baz > > > > then > > > the following came out a bit mangled via email. > > > $ find subdir/somefile - > > > > type > > > > f - > > > > exec > > > > head -n 2 {} + > > foo > > bar > > > > I could just do > > > > find > > > > " > > > > ${fdir[@]} > > > > " > > > > - > > > > type > > > > f - > > > > exec > > > > head -v -n > > > > " > > > > $hn > > > > " > > > > '{}' > > > > + > > > > regardless of the mix of directories and files in FDIR. > > > > But is this the right and proper way to use the FIND command? > > > Sure, why not? ;-) > > $ find subdir/somefile -type f -exec head -v -n1 '{}' + > ==> subdir/somefile <== > > foo > > $ find subdir -type f -exec head -v -n2 '{}' + > ==> subdir/somefile <== > > foo > > Have a nice day, > Berny