2010-09-30 25 views

Trả lời

21

Bạn chỉ có thể sử dụng -R (recursive) cờ.

chmod -R 777 /Users/Test/Desktop/PATH 
32

Vấn đề là các * là nhận được giải thích bởi shell của bạn và đang mở rộng đến một file có tên TEST_FILE rằng sẽ xảy ra là trong thư mục làm việc hiện tại của bạn, vì vậy bạn đang nói find để thực hiện lệnh đặt tên TEST_FILE mà không tồn tại. Tôi không chắc chắn những gì bạn đang cố gắng thực hiện với điều đó *, bạn chỉ cần loại bỏ nó.

Ngoài ra, bạn nên sử dụng thành ngữ -exec program '{}' \+ thay vì -exec program '{}' \; để find không chia rẽ một quy trình mới cho từng tệp. Với ;, một quy trình mới được chia nhỏ cho mỗi tệp, trong khi với +, nó chỉ cung cấp một quy trình và chuyển tất cả các tệp trên một dòng lệnh, cho các chương trình đơn giản như chmod hiệu quả hơn nhiều.

Cuối cùng, chmod có thể làm thay đổi recursive ngày của riêng mình với -R cờ, vì vậy trừ khi bạn cần phải tìm kiếm cho các tập tin cụ thể, chỉ cần làm điều này:

chmod -R 777 /Users/Test/Desktop/PATH 
5

Bằng cách sử dụng CHMOD yes:

Đối tập tin đệ quy:

chmod -R 777 foldername or pathname 

Đối với không đệ quy:

chmod 777 foldername or pathname 
+0

Hai hình này giống nhau. O_o –

+0

Nếu mac phàn nàn về thao tác không được phép, hãy thực hiện với sudo –

3

tôi không có một máy Mac OSX để kiểm tra điều này trên nhưng trong bash trên Linux tôi sử dụng giống như sau để chmod chỉ thư mục:

find . -type d -exec chmod 755 {} \+ 

nhưng điều này cũng làm điều tương tự:

chmod 755 `find . -type d` 

và vì vậy thực hiện điều này:

chmod 755 $(find . -type d) 

cuối cùng hai đang sử dụng hình thức khác nhau của s ubcommands. Đầu tiên là sử dụng backticks (cũ hơn và khấu hao) và một cú pháp con khác là $().

Vì vậy, tôi nghĩ trong trường hợp của bạn rằng những điều sau đây sẽ làm những gì bạn muốn.

chmod 777 $(find "/Users/Test/Desktop/PATH") 
+1

Tôi nghĩ đó là câu trả lời hay hơn vì trong hầu hết các trường hợp, các tệp và thư mục sẽ không có quyền tương tự. NHƯNG tôi nghĩ '.' tài liệu tham khảo là nguy hiểm - nếu bạn đang ở trong thư mục sai, bạn có thể dễ dàng gây rối mọi thứ. Ngoài ra câu trả lời 2 và 3 không hoạt động nếu danh sách đối số quá dài. – mrtnmgs

Các vấn đề liên quan