Yang terpendek yang bisa saya pikirkan adalah:
chmod -R a=r,u+w,a+X /foo
yang bekerja pada GNU / Linux, dan saya percaya pada Posix secara umum (dari bacaan saya: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html ).
Apa yang dilakukan adalah:
- Setel file / direktori ke r__r__r__ (0444)
- Tambahkan w untuk pemilik, untuk mendapatkan rw_r__r__ (0644)
- Atur eksekusi untuk semua jika direktori (0755 untuk dir, 0644 untuk file).
Yang penting, izin langkah 1 menghapus semua bit eksekusi, jadi langkah 3 hanya menambahkan bit eksekusi kembali untuk direktori (tidak pernah file). Selain itu, ketiga langkah terjadi sebelum direktori diulang (jadi ini tidak setara dengan misalnya
chmod -R a=r /foo
chmod -R u+w /foo
chmod -R a+X /foo
karena a = r menghapus x dari direktori, maka chmod tidak dapat mengulanginya.)