2013-02-13 36 views
11

Điều này phải thực sự đơn giản để làm nhưng đã hoàn toàn rút ra một trống. Tôi có thể thấy được sự cho phép các tập tin bằng cách sử dụng ls-la mà có thể cung cấp cho một cái gì đó như:UNIX/Linux/Mac OSX được sự cho phép của tập tin như số

-rwxr-xr-x 1 james staff 68 8 Feb 13:33 basic.sh* 
-rw-r--r-- 1 james staff 68 8 Feb 13:33 otherFile.sh* 

Làm thế nào để dịch đó vào một số để sử dụng với chmod như chmod 755 otherFile.sh (với ra làm việc chuyển đổi bằng tay).

+1

Chỉ cần một lưu ý có thể làm cho nghiên cứu của bạn dễ dàng hơn: Mac OS X là BSD UNIX và mọi cách giải quyết vấn đề UNIX cũng sẽ thực hiện. (Theo nhiều cách của Linux.) – Jesper

+0

Đó là lời khuyên tuyệt vời, cảm ơn @Jesper. – AJP

Trả lời

18

stat -f "%Lp" [filename] hoạt động với tôi trong OS X 10.8.

+0

Không hoạt động trên 10.7.5 – AJP

+0

Lạ, trang người đàn ông cho 'stat' trong 10.7 làm cho nó trông giống như những tùy chọn này sẽ hoạt động theo cách họ làm trong 10.8. lỗi gì bạn nhận được? –

+1

Hmmm, thật lạ lùng, tôi nghĩ câu trả lời của bạn giống như: 'stat -c"% a% w "[tên tệp]' không hoạt động. Câu trả lời của bạn không hoạt động. – AJP

1

Bạn sẽ có thể sử dụng lệnh stat thay vì ls. Từ cách nhìn vào manpage, điều này sẽ làm việc để có được quyền truy cập file:

for f in dir/* 
do 
    perms=$(stat -f '0%Hp%Mp%Lp' $f) 
    echo "$f has permissions $perms" 
done 

(mặc dù tôi không ở máy Mac của tôi vào lúc này và do đó không thể kiểm tra nó).

+0

@AJP, từ nghiên cứu sâu hơn về manpage, tôi nghĩ bạn cần chỉ định Hp, Mp và Lp để nhận tất cả các quyền của tệp. Vui lòng xem chỉnh sửa của tôi. – trojanfoe

+0

có chỉnh sửa của tôi chỉ để cho thấy rằng tôi chỉ muốn phần '755' để tôi có thể sử dụng nó với chmod để thay đổi quyền cho đọc, viết và thực hiện. Nhưng câu trả lời của bạn không cho phép đầy đủ. – AJP

+0

@AJP Tôi không hiểu cả hai câu trả lời đều đúng. Bạn có nói rằng 'stat -f '% Hp% Mp% Lp'' ** và **' stat -f'% Lp'' cho kết quả giống nhau không? – trojanfoe

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