GNU/Linux >> Tutoriels Linux >  >> Linux

Pouvez-vous modifier les autorisations sur tous les fichiers sauf un répertoire sous Linux ?

En supposant que vous souhaitiez définir le bit d'autorisation 755 de manière récursive pour le contenu des dossiers de votre répertoire de travail actuel, à l'exception du contenu du dossier appelé "nameOfFolderToBeExcluded" :

 chmod 755 -R $(ls | awk '{if($1 != "nameOfFolderToBeExcluded"){ print $1 }}')

Vous pouvez utiliser find pour rechercher tous les fichiers qui ne correspondent pas au nom de fichier donné et exec une commande sur tous ces fichiers trouvés comme :

En supposant que vous deviez exclure le répertoire test et accordez les autorisations de fichier 755 à tous les autres fichiers et répertoires. Cela serait exécuté du haut de l'arbre.

find ! -name test -exec chmod 755 {} \;

Testé

[email protected]:$ touch a1.txt a2.txt a3.txt test
[email protected]:$ ls -lrt
total 0
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 test
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 a3.txt
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 a2.txt
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 a1.txt
[email protected]:$ find ! -name test -exec chmod 777 {} \;
[email protected]:$ ls -lrt
total 0
-rw-rw-r-- 1 mtk mtk 0 Sep 17 23:55 test
-rwxrwxrwx 1 mtk mtk 0 Sep 17 23:55 a3.txt*
-rwxrwxrwx 1 mtk mtk 0 Sep 17 23:55 a2.txt*
-rwxrwxrwx 1 mtk mtk 0 Sep 17 23:55 a1.txt*
[email protected]:$ 

Les autorisations de fichier pour le fichier test resté inchangé. Il en va de même pour les répertoires.


Quelle coquille ?

Si vous utilisez bash (probablement si vous êtes sous Linux), vous pouvez consulter extglob, qui vous donne plus d'options pour le globbing, y compris le "glob négatif" !()

shopt -s extglob
chmod 774 !(file-to-ignore)

Linux
  1. 3 façons de supprimer tous les fichiers d'un répertoire sauf un ou quelques fichiers avec des extensions

  2. Renommer tous les fichiers et noms de répertoires en minuscules sous Linux

  3. Comment supprimer tous les fichiers d'un dossier sauf un fichier spécifique sous Linux

  4. 9 répertoires Linux que vous devez sauvegarder et un que vous ne devriez pas

  5. Comment déplacer tous les fichiers (y compris cachés) d'un répertoire à un autre ?

Comment modifier les autorisations de fichiers de manière récursive avec chmod sous Linux

Commande cd sous Linux (changer de répertoire)

Comment modifier les autorisations de fichiers ou de répertoires dans cPanel ?

Tout ce que vous devez savoir sur le répertoire Linux /tmp

Comment changer toutes les occurrences d'un mot dans tous les fichiers d'un répertoire

commande linux pour vider tous les fichiers d'un répertoire