Dengan asumsi bahwa Anda ingin menyetel izin bit 755 secara rekursif untuk konten folder di direktori kerja Anda saat ini, selain dari konten folder bernama "nameOfFolderToBeExcluded" :
chmod 755 -R $(ls | awk '{if($1 != "nameOfFolderToBeExcluded"){ print $1 }}')
Anda dapat menggunakan find
untuk mencari semua file yang tidak cocok dengan nama file dan exec
yang diberikan perintah pada semua file yang ditemukan seperti:
Dengan asumsi Anda perlu mengecualikan direktori test
dan berikan izin file 755 ke semua file dan direktori lainnya. Ini akan dieksekusi dari atas pohon.
find ! -name test -exec chmod 755 {} \;
Teruji
[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]:$
Izin file untuk file test
tetap tidak berubah. Hal yang sama berlaku untuk direktori.
Cangkang apa?
Jika Anda menjalankan bash (mungkin jika Anda menggunakan Linux), Anda dapat memeriksa extglob, yang memberi Anda lebih banyak opsi untuk globbing, termasuk "glob negatif" !()
shopt -s extglob
chmod 774 !(file-to-ignore)