I want to loop through a directory with many subdirectories that have hidden files. I want to loop the directory and open only files that have some certain permission, "drwx-----T " in this case.
My current script is
#!/bin/sh
cd /z/vendors #vendors has a list of directories which contain hidden files
for FILE in *; do
if [ <what should i put here to select files with permission "drwx-----T ">]; then
cd "$FILE" #and do something here e.g open the hidden files
cd ..
fi
done
I don't know what test condition to use, I know the command ls -l | grep "drwx-----T "
will list the files I need but how can I include this in the if
test
CodePudding user response:
The exit status of grep
indicates whether the input matched the pattern. So you can use it as the condition in if
.
if ls -ld "$FILE" | grep -q -F 'drwx-----T '; then
# do what you want
fi
The -q
option prevents grep
from printing the match, and -F
makes it match a fixed string rather than treating it as a regular expression (
has special meaning in regexp).