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.