On Wed, Nov 20, 2019 at 02:06:07PM +0000, Bonno Bloksma wrote: > So now want only the *.sh (shell script) files > > beheerdertio@einpingme:~$ ls -R ping/*.sh > ping/getloss-all.sh ping/getloss.sh ping/showloss-today.sh > ping/showtime-today.sh
> But neither recurses into the directories. > Maybe because none of the directories has a *.sh name, how illogical that > sounds, that would make the -R option pretty useless I think. > But if that is the case then how do I change all the *.sh files in those > directories to an executable, other than doing it one by one. There are a couple ways. The first one would be to turn on the "globstar" option in bash, and then use a recursive glob. shopt -s globstar chmod whatever ping/**/*.sh The second way, which is the traditional way, would be to use find(1) to perform the recursive search, and act on the files that it finds. find ping -type f -name '*.sh' -exec chmod whatever {} +