GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Können Sie die Berechtigung für alle Dateien außer einem Verzeichnis in Linux ändern?

Angenommen, Sie möchten das Berechtigungsbit 755 rekursiv für die Inhalte der Ordner in Ihrem aktuellen Arbeitsverzeichnis setzen, abgesehen von den Inhalten des Ordners namens "nameOfFolderToBeExcluded" :

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

Sie können find verwenden um nach allen Dateien zu suchen, die nicht mit dem angegebenen Dateinamen und exec übereinstimmen ein Befehl für alle Dateien, die wie folgt gefunden werden:

Angenommen, Sie müssen das Verzeichnis test ausschließen und geben Sie allen anderen Dateien und Verzeichnissen Dateiberechtigungen 755 . Dies würde von der Spitze des Baums ausgeführt werden.

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

Getestet

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

Die Dateiberechtigungen für die Datei test unverändert geblieben. Gleiches gilt für Verzeichnisse.


Welche Muschel?

Wenn Sie bash ausführen (wahrscheinlich unter Linux), können Sie extglob ausprobieren, das Ihnen mehr Optionen für das Globbing bietet, einschließlich des "negativen Globs" !()

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

Linux
  1. So ändern Sie die Berechtigung für Verzeichnisse und Dateien

  2. So finden Sie eine Datei in Linux rekursiv in allen Verzeichnissen

  3. So entfernen Sie alle Dateien in einem Ordner außer einer bestimmten Datei in Linux

  4. Wie verschiebt man alle Dateien (einschließlich versteckter) von einem Verzeichnis in ein anderes?

  5. So ändern Sie alle Vorkommen eines Wortes in allen Dateien in einem Verzeichnis

So ändern Sie Dateiberechtigungen rekursiv mit chmod in Linux

Cd-Befehl in Linux (Verzeichnis wechseln)

Wie ändere ich Dateien oder Verzeichnisberechtigungen in cPanel?

Wie finde ich alle Dateien/Ordner mit 777-Berechtigung in Linux?

Alles, was Sie über das Linux /tmp-Verzeichnis wissen müssen

Wie lösche ich alle Dateien in einem Verzeichnis außer einigen?