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)