Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!lll-winken!uunet!talarian!scott From: scott@talarian.UUCP (Scott Weitzenkamp) Newsgroups: comp.unix.questions Subject: Cloning File Protection? Keywords: stat(2) chmod(1) Message-ID: <277@talarian.UUCP> Date: 5 Oct 90 16:58:07 GMT Lines: 55 I am trying to write a shell script (either in sh or csh on SunOS 4.0.3) that can clone the file protection from one file to another. I'd like to do something like this: chmod `get_protection old_file_name` new_file_name Is there a (easy) way from sh or csh to retrieve the file protection of a file in a format that chmod can understand? It doesn't look to me like ls(1) will do the trick. What I wound up doing was to write a C program to print a file's protection in octal: /* getmod.c -- print file protection of a file in octal */ #include #include #include int main(argc, argv) int argc; char **argv; { struct stat stat_buf; if (argc != 2) { fprintf(stderr, "Usage: %s file\n", argv[0]); return 1; } /* if */ if (stat(argv[0], &stat_buf) != 0) { perror("stat"); return 1; } /* if */ printf("0%o\n", stat_buf.st_mode & 0777); return 0; } /* main */ Now I can do what I want: chmod `getmod old_foo.c` new_foo.c I have a feeling this is probably easy to do in Perl, but I not really interested in a Perl solution because I cannot guarantee that our customers will have Perl (I suppose I could put Perl on our product tape, though). Do anybody see an easier way to do this? -- Thanks in advance... Scott Weitzenkamp, Talarian Corporation, Mountain View, CA uunet!talarian!scott (415) 965-8050 "Welcome to the late show, starring NULL and void" -- Men At Work