If in a #!/bin/bash script I have:
FILES="/path/to/files/"
and that path contains files, and I insert this:
for f in $FILES
do
thing
done
I get no result.
If I change FILES="/path/to/files/*
then the loop runs and I get results. However, if part of the loop involves building a file folder structure beneath /path/to/files/
, i.e. /path/to/files/folder1
folder2
etc., then on a subsequent run, those folders become part of the iteration.
So, is there a way to set the depth on the $FILES
path so the for loop will only ever look at just that folder?
CodePudding user response:
Rather than using for f in $FILES
I changed it to:
for f in $(find $FILES -maxdepth 1 -name "*.mp4")
Does anyone see any problems with this?
CodePudding user response:
The following script will only loop through files of the present folder, but will exclude subdirectories.
export selectedFiles=`ls -p | grep -v /`
for f in $selectedFiles
do
echo $f
done
For any other folder, please store directory path in "theFolder", like shown below.
export theFolder="/home/user/thedirectory"
export selectedFiles=`ls $theFolder -p | grep -v /`
for f in $selectedFiles
do
echo $f
done