GNU/Linux >> Belajar Linux >  >> Linux

Bisakah Anda mengubah izin untuk semua file kecuali satu direktori di Linux?

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)

Linux
  1. Untuk mengubah izin untuk direktori dan file

  2. Cara Menemukan File Di Linux Di Semua Direktori Secara Rekursif

  3. 9 direktori Linux yang harus Anda buat cadangannya dan yang tidak boleh

  1. Bagaimana Memindahkan Semua File (termasuk Tersembunyi) Dari Satu Direktori Ke Yang Lain?

  2. Gunakan Temukan Untuk Menemukan Direktori Tertentu Dan Hapus Semua File Di dalamnya Kecuali Satu Direktori?

  3. Bagaimana mengubah semua kemunculan kata di semua file dalam direktori

  1. perintah linux untuk mengosongkan semua file direktori

  2. Bagaimana saya bisa mengubah semua file milik satu pengguna ke pengguna lain?

  3. Bagaimana cara menghapus semua file dalam direktori kecuali beberapa?