Bash scripting, loop through files in folder fails
With the nullglob
option.
$ shopt -s nullglob
$ for i in zzz* ; do echo "$i" ; done
$
for i in $(find MY-FOLDER/MOVIE -type f); do
echo $i
done
The find
utility is one of the Swiss Army knives of linux. It starts at the directory you give it and finds all files in all subdirectories, according to the options you give it.
-type f
will find only regular files (not directories).
As I wrote it, the command will find files in subdirectories as well; you can prevent that by adding -maxdepth 1
Edit, 8 years later (thanks for the comment, @tadman!)
You can avoid the loop altogether with
find . -type f -exec echo "{}" \;
This tells find
to echo
the name of each file by substituting its name for {}
. The escaped semicolon is necessary to terminate the command that's passed to -exec
.