Làm thế nào để áp dụng các thư mục chmod đệ quy mà không ảnh hưởng đến các tập tin?


18

Sau khi tôi áp dụng chmod -Rcho một thư mục, quyền được thay đổi cho mọi thứ trong (tệp và thư mục). Làm cách nào tôi có thể thêm quyền thực thi / search ( x) vào thư mục mà không sửa đổi các tệp?

Câu trả lời:


13

Bạn có thể sử dụng tìm .

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

Trong đó 750 là chế độ bạn muốn áp dụng và "./" là thư mục bạn sẽ tìm kiếm đệ quy.

EDIT : Nhờ @Gilles và tìm (1) , tôi đã sửa đổi điều này để tăng cường bảo mật và hiệu suất.


@Gilles Cảm ơn, không quá thường xuyên khi tôi học được điều gì đó mới về các công cụ Unix :-) Điều đó thật tuyệt vời. Ngoài ra, bây giờ đọc tài liệu tìm kiếm , người ta thực sự nên sử dụng -execdir thay thế.
ewindisch

7

Trong trường hợp cụ thể này, bạn có thể sử dụng Xthay vì xchỉ thêm các bit vào thư mục hoặc tệp đã có bit thực thi được đặt cho một số người dùng (ví dụ chmod -R +X my_dir).

Nói chung (ví dụ: nếu bạn muốn làm cho tất cả các thư mục có thể đọc được mà không ảnh hưởng đến các tệp), bạn có thể sử dụng findvới -type dhoặc nếu bạn đang sử dụng zsh (hoặc bash 4 với shopt -s globstar) toàn **/cầu (cả hai mà không chuyển -Rcờ đến chmod).


@Gilles: Điểm hay, tôi đã thêm nó vào câu trả lời.
sepp2k

1
"sử dụng X thay vì x chỉ thêm các bit vào thư mục hoặc tệp đã cài đặt bit thực thi cho một số người dùng" - Cảm ơn! Tôi đã bỏ lỡ điều này rất nhiều!
Ivan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.