Comment trouver les permissions du propriétaire d’un fichier et atsortingbuer les mêmes permissions au groupe et aux autres utilisateurs utilisant un script

Je souhaite modifier tous les fichiers qui se trouvent dans un dossier avec les mêmes permissions que le propriétaire en a sur les autres et le groupe.

rock@rock-DL-H61MXP:~/rock$ ls -l total 92 -rwxrwxr-x 1 rock rock 8702 Sep 24 16:46 a.out -rw-rw-r-- 1 rock rock 2957 Sep 16 19:50 cprob1.c -rw-rw-r-- 1 rock rock 2957 Sep 16 19:48 cprob1.c~ -rw-rw-r-- 1 rock rock 5838 Sep 19 15:11 cprob.c -rw-rw-r-- 1 rock rock 5814 Sep 19 15:08 cprob.c~ -rw-rw-r-- 1 rock rock 5406 Sep 19 16:01 cproblem1.c -rw-rw-r-- 1 rock rock 2232 Sep 18 18:03 file1.txt -rw-rw-r-- 1 rock rock 1795 Sep 18 18:32 file.txt -rw-rw-r-- 1 rock rock 1108 Sep 11 17:48 frama_c_journal.ml -rw-rw-r-- 1 rock rock 148 Sep 19 16:13 name.txt -rw-rw-r-- 1 rock rock 151 Sep 19 15:34 name.txt~ drwxrwxr-x 5 rock rock 4096 Nov 18 12:17 project -rw-rw-r-- 1 rock rock 123 Sep 12 10:47 quine.c -rw-rw-r-- 1 rock rock 947 Sep 11 17:57 rc -rw-rw-r-- 1 rock rock 379 Sep 17 14:17 signext.c -rw-rw-r-- 1 rock rock 129 Sep 17 13:39 test.c -rw-rw-r-- 1 rock rock 476 Sep 24 16:46 thread.c -rw-rw-r-- 1 rock rock 475 Sep 24 17:07 threadprob1.c 

C’est ce que j’ai essayé sur Linux, ligne de commande:

 $ ls -l | grep -v "^total" |\ > while read line; do > file_name=`echo $line | awk '{print $9}'` > owner_perm=`echo $line | cut -c '2-4'` > chmod g+$owner_perm $file_name ; chmod o+$owner_perm $file_name > done 

Remarque: Vous pouvez représenter un groupe de permissions avec des ugo groupes et ugo signifiant ugo . Dans le code ci-dessus, j’ai simplement extrait la permission du fichier du champ propriétaire et assigné la même chose au groupe et aux autres.