On Fri 06 Aug 2021 at 09:30:17 (+1000), David wrote: > On Fri, 6 Aug 2021 at 06:03, Gary L. Roach <garyroach...@gmail.com> wrote: > > > Second, why am I separating out the Path the way I am doing? I need to > > check each level for existence then, if the level doesn't exist, create > > the directory, cd to the directory, set chown and -x chmod. After that > > check the next level and repeat the process until I run out of levels. > > There are other things that need to be done with files that are similar. > > It sounds like you are unaware of 'mkdir -p' and 'chown -R'. > They are the standard tools for this kind of task. > > 'chmod -R' is less useful because it does not discriminate > between files and directories, I never understood why it > does not offer that option, because usually we need all file > permissions to not be the same as all directory permissions.
? I thought that was what X is for. A demonstration: 1. Create a tree of directories and files, making them available only to the user: $ mkdir -p temp/tree/{a,b} temp/tree/{a/{p,q,r},b/{x,y,z}} $ touch temp/tree/{a,b}/text temp/tree/{a/{p,q,r},b/{x,y,z}}/text $ chmod -R go= temp/tree $ ls -GlgR temp/tree | grep -v total temp/tree: drwx------ 5 4096 Aug 5 21:55 a drwx------ 5 4096 Aug 5 21:55 b temp/tree/a: drwx------ 2 4096 Aug 5 21:55 p drwx------ 2 4096 Aug 5 21:55 q drwx------ 2 4096 Aug 5 21:55 r -rw------- 1 0 Aug 5 21:55 text temp/tree/a/p: -rw------- 1 0 Aug 5 21:55 text temp/tree/a/q: -rw------- 1 0 Aug 5 21:55 text temp/tree/a/r: -rw------- 1 0 Aug 5 21:55 text temp/tree/b: -rw------- 1 0 Aug 5 21:55 text drwx------ 2 4096 Aug 5 21:55 x drwx------ 2 4096 Aug 5 21:55 y drwx------ 2 4096 Aug 5 21:55 z temp/tree/b/x: -rw------- 1 0 Aug 5 21:55 text temp/tree/b/y: -rw------- 1 0 Aug 5 21:55 text temp/tree/b/z: -rw------- 1 0 Aug 5 21:55 text $ 2. Now use X to make them readable for all: $ chmod -R a+rX temp/tree $ ls -GlgR temp/tree | grep -v total temp/tree: drwxr-xr-x 5 4096 Aug 5 21:55 a drwxr-xr-x 5 4096 Aug 5 21:55 b temp/tree/a: drwxr-xr-x 2 4096 Aug 5 21:55 p drwxr-xr-x 2 4096 Aug 5 21:55 q drwxr-xr-x 2 4096 Aug 5 21:55 r -rw-r--r-- 1 0 Aug 5 21:55 text temp/tree/a/p: -rw-r--r-- 1 0 Aug 5 21:55 text temp/tree/a/q: -rw-r--r-- 1 0 Aug 5 21:55 text temp/tree/a/r: -rw-r--r-- 1 0 Aug 5 21:55 text temp/tree/b: -rw-r--r-- 1 0 Aug 5 21:55 text drwxr-xr-x 2 4096 Aug 5 21:55 x drwxr-xr-x 2 4096 Aug 5 21:55 y drwxr-xr-x 2 4096 Aug 5 21:55 z temp/tree/b/x: -rw-r--r-- 1 0 Aug 5 21:55 text temp/tree/b/y: -rw-r--r-- 1 0 Aug 5 21:55 text temp/tree/b/z: -rw-r--r-- 1 0 Aug 5 21:55 text $ All the directories get execute permission. Cheers, David.