bashKịch bản sau đây in tất cả các quyền của mục nhập thư mục được truyền dưới dạng đối số và tất cả các cha mẹ của nó lên đến /:
#!/usr/bin/env bash
[[ $# -eq 1 ]] || exit 1
FILEPATH="$1"
while true ; do
ls -ld "$FILEPATH"
[[ "$FILEPATH" != "/" ]] || exit
FILEPATH="$( dirname "$FILEPATH" )"
done
Lưu như ví dụ parent_permissions.shvà chạy bằng cách sử dụng /path/to/parent_permissions.sh /path/to/file.
Nó chỉ hoạt động với các đường dẫn tuyệt đối trừ khi được kết hợp với readlink -fhoặc abspathtập lệnh từ câu trả lời này , trong trường hợp đó bạn cần thay đổi phép gán ban đầu FILEPATHthành:
FILEPATH="$( abspath "$1" )"
Trên Linux, điều này có thể hoạt động (chưa được kiểm tra):
FILEPATH="$( readlink -f "$1" )"
Ví dụ đầu ra:
drwxr-xr-x 66 danielbeck staff 2244 2 Feb 12:38 /Users/danielbeck
drwxr-xr-x 11 root admin 374 1 Feb 15:21 /Users
drwxrwxr-t 35 root admin 1258 22 Jan 23:09 /
Thêm đối số vào lscuộc gọi hoặc thay thế nó, ví dụ như getfacl, phù hợp trên hệ thống của bạn để in ACL và các thuộc tính mở rộng nếu bạn quan tâm đến chúng.