Bagaimana cara menerapkan direktori chmod secara rekursif tanpa mempengaruhi file?


18

Setelah saya mendaftar chmod -Rke direktori, izin diubah untuk semua yang ada di dalamnya (file dan direktori). Bagaimana saya bisa menambahkan xizin eksekusi / pencarian ( ) ke direktori tanpa mengubah file?

Jawaban:


13

Anda dapat menggunakan find .

find ./ -type d -execdir chmod 750 {} +

Di mana 750 adalah mode yang ingin Anda terapkan dan "./" adalah direktori yang akan Anda cari secara rekursif.

EDIT : Terima kasih kepada @Gilles dan temukan (1) , saya telah merevisi ini untuk keamanan dan kinerja tambahan.


@Gilles Terima kasih, tidak terlalu sering saya mempelajari sesuatu yang baru tentang alat Unix :-) Itu luar biasa. Juga, sekarang membaca dokumentasi find , kita harus menggunakan -execdir sebagai gantinya.
ewindisch

7

Dalam kasus khusus ini Anda dapat menggunakan Xalih-alih xyang hanya menambahkan bit ke direktori atau file yang sudah memiliki bit yang dapat dieksekusi ditetapkan untuk beberapa pengguna (yaitu chmod -R +X my_dir).

Secara umum (misalnya jika Anda ingin membuat semua direktori bisa dibaca tanpa mempengaruhi file), kamu bisa menggunakan finddengan -type datau jika Anda menggunakan zsh (atau pesta 4 dengan shopt -s globstar) yang **/gumpal (keduanya tanpa melewati -Rbendera untuk chmod).


@Gilles: Poin bagus, saya telah menambahkan itu ke jawabannya.
sepp2k

1
"gunakan X daripada x yang hanya menambahkan bit ke direktori atau file yang sudah memiliki bit yang dapat dieksekusi untuk beberapa pengguna" - Terima kasih! Saya sangat merindukan hal ini!
Ivan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.