Search code examples
linuxbashfilepermissions

test if all files in directory have correct permissions


How can I test if all files in directory have correct permissions ? Using command stat --format %a /home/user/dir/* I can get permissions of all files in a directory in a multi line string. Let's say I want check if all files have permissions 0700.

I use if [ "$(stat --format %a ~/file)" != 600 ]; then chmod 0600 ~/file; fi for single file, but how can I test multiple files ?


Solution

  • Could you try this?

    for i in ~/your_dir/*/*
    do
     if [ "$(stat --format %a $i)" != 600 ]; then
      chmod 0600 $i
     fi
    done