Za předpokladu, že chcete nastavit bit oprávnění 755 rekurzivně pro obsah složek ve vašem aktuálním pracovním adresáři, kromě obsahu složky nazvané "nameOfFolderToBeExcluded" :
chmod 755 -R $(ls | awk '{if($1 != "nameOfFolderToBeExcluded"){ print $1 }}')
Můžete použít find pro vyhledání všech souborů, které neodpovídají danému názvu souboru a exec příkaz pro všechny takové soubory nalezené jako:
Za předpokladu, že potřebujete vyloučit adresář test a všem ostatním souborům a adresářům udělte oprávnění 755 k souboru. To by bylo provedeno z vrcholu stromu.
find ! -name test -exec chmod 755 {} \;
Testováno
example@unixlinux.online:$ touch a1.txt a2.txt a3.txt test
example@unixlinux.online:$ 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
example@unixlinux.online:$ find ! -name test -exec chmod 777 {} \;
example@unixlinux.online:$ 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*
example@unixlinux.online:$
Oprávnění souboru pro soubor test zůstal nezměněn. Totéž platí pro adresáře.
Jaká skořápka?
Pokud používáte bash (pravděpodobně pokud používáte Linux), můžete se podívat na extglob, který vám poskytuje více možností pro globování, včetně "negative glob" !()
shopt -s extglob
chmod 774 !(file-to-ignore)