Làm thế nào tôi có thể làm một chmod đệ quy chỉ trên các thư mục?


31

Tôi muốn thay đổi quyền trên cây trên Centos 4 để thêm quyền thực thi cho tất cả các thư mục theo cách đệ quy từ một thư mục. Nếu tôi sử dụng chmod bình thường, các tệp không phải là thư mục cũng được sửa đổi:

chmod -R o+x /my/path/here

Làm thế nào tôi chỉ có thể ảnh hưởng đến thư mục?

Câu trả lời:


48

Chạy findtrên -type d( thư mục ) với -execchính để thực hiện chmodchỉ trên các thư mục:

find /your/path/here -type d -exec chmod o+x {} \;

Để chắc chắn rằng nó chỉ thực hiện nó trên các đối tượng mong muốn, bạn có thể chạy find /your/path/here -type dđầu tiên; nó chỉ đơn giản là in ra các thư mục mà nó tìm thấy.


Bạn có thể giải thích những gì {} \; làm?
Srekel

2
@Srekel xem câu trả lời này Askubfox.com/questions/339015/ từ
MADforFUNandHappy

17

Xem ví dụ dòng lệnh - chmod trong Wikipedia.

chmod -R a-x+X directory    remove the execute permission on all files in 
                            a directory tree, while allowing for directory browsing.

Như được thêm bởi Daniel: điều này sẽ hoạt động trong trường hợp của bạn:

chmod -R o+X directory

Điều này sẽ ảnh hưởng đến các quyền hiện tại của các tập tin trong các thư mục.
scriptmonster

@scriptmonster dòng trích dẫn là sai trong trường hợp này, nhưng chmod -R o+X directorynên hoạt động cho OP.
Daniel Beck

1
Đối với những người thắc mắc về sự khác biệt, như tôi, đó là X cũng sẽ áp dụng quyền thực thi cho bất kỳ tệp nào đã có ít nhất một bit quyền thực thi đã được đặt (người dùng, nhóm hoặc người khác). Trong trường hợp chung, câu trả lời được chấp nhận là tốt hơn.
ixe013

1
find /home/mydir -type d | xargs chmod ugo+rx

Điều này hoạt động trên CentOS6, điều mà find -exec ở trên không có. Về cơ bản, nó chỉ dẫn danh sách các thư mục vào lệnh xargs sẽ gửi chúng đến chmod. Chmod sau đó thiết lập đọc và thực thi (tìm kiếm) phổ quát trên các thư mục. Để làm điều này cho tất cả người dùng trong nhà sử dụng sudo:

sudo sh -c "find /home/ -type d | xargs chmod ugo+rx"
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.