GNU/Linux >> Linux Esercitazione >  >> Linux

Puoi cambiare l'autorizzazione a tutti i file tranne una directory in Linux?

Supponendo che desideri impostare il bit di autorizzazione 755 in modo ricorsivo per il contenuto delle cartelle nella tua directory di lavoro corrente, a parte il contenuto della cartella chiamata "nameOfFolderToBeExcluded" :

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

Puoi usare find per cercare tutti i file che non corrispondono al nome file specificato e exec un comando su tutti i file trovati come:

Supponendo che tu debba escludere la directory test e concedere i permessi sui file 755 a tutti gli altri file e directory. Questo verrebbe eseguito dalla cima dell'albero.

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

Testato

[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]:$ 

I permessi del file per il file test rimasto invariato. Lo stesso vale per le directory.


Quale guscio?

Se stai eseguendo bash (probabilmente se sei su Linux), puoi controllare extglob, che ti offre più opzioni per il globbing, incluso il "glob negativo" !()

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

Linux
  1. Per modificare l'autorizzazione per directory e file

  2. 3 modi per eliminare tutti i file in una directory tranne uno o pochi file con estensioni

  3. Come trovare un file in Linux in tutte le directory in modo ricorsivo

  4. Come rimuovere tutti i file in una cartella tranne un file specifico in Linux

  5. 9 directory Linux di cui devi eseguire il backup e una di cui non dovresti

Come modificare le autorizzazioni dei file in modo ricorsivo con chmod in Linux

Comando Cd in Linux (Cambia directory)

Come modificare i permessi di file o directory in cPanel?

Tutto quello che c'è da sapere sulla directory /tmp di Linux

comando linux per svuotare tutti i file di una directory

Come posso cambiare tutti i file appartenenti a un utente a un altro utente?