GNU/Linux >> Tutoriales Linux >  >> Linux

¿Puedes cambiar el permiso a todos los archivos excepto a un directorio en Linux?

Suponiendo que desea establecer el bit de permiso 755 de forma recursiva para el contenido de las carpetas en su directorio de trabajo actual, aparte del contenido de la carpeta llamada "nameOfFolderToBeExcluded" :

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

Puedes usar find para buscar todos los archivos que no coincidan con el nombre de archivo dado y exec un comando en todos los archivos encontrados como:

Suponiendo que necesita excluir el directorio test y otorgue permisos de archivo 755 a todos los demás archivos y directores. Esto se ejecutaría desde la parte superior del árbol.

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

Probado

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

Los permisos de archivo para el archivo test permanecido sin cambios. Lo mismo se aplica a los directorios.


¿Qué caparazón?

Si está ejecutando bash (probablemente si está en Linux), puede consultar extglob, que le brinda más opciones para glob, incluido el "glob negativo" !()

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

Linux
  1. Para cambiar el permiso de directorio y archivos

  2. 3 formas de eliminar todos los archivos de un directorio excepto uno o algunos archivos con extensiones

  3. Cambiar el nombre de todos los archivos y nombres de directorios a minúsculas en Linux

  4. ¿Eliminar todos los archivos/directorios excepto un archivo?

  5. ¿Usar Buscar para encontrar cierto directorio y eliminar todos los archivos excepto un directorio?

Cómo cambiar los permisos de archivos de forma recursiva con chmod en Linux

Comando Cd en Linux (Cambiar Directorio)

¿Cómo cambiar archivos o permisos de directorio en cPanel?

Todo lo que necesita saber sobre el directorio /tmp de Linux

comando de linux para vaciar todos los archivos de un directorio

¿Cómo eliminar todos los archivos en un directorio excepto algunos?