Tôi biết bạn có thể xác định chủ sở hữu của thư mục bằng cách thực hiện:
ls -ld ~/foo | awk '{ print $3 }'
Sau đó, bạn có thể so sánh nó với người dùng hiện tại bằng cách này:
if [[ $(ls -ld ~/foo | awk '{ print $3 }') == "$USER" ]] # or $(id -u -n ) instead of $USER
then
echo "You are the owner"
else
echo "You are NOT the owner"
fi
Nhưng bạn có thể có quyền viết mà không phải là chủ sở hữu. Làm thế nào để bạn xác định điều này?
stat
dành riêng cho các hệ thống Linux hiện đại, các đơn vị khác có thể có sự khác biệtstat
hoặc không có gì cả. Phân tích cú pháp ls thường là công thức cho rắc rối , nhưng phân tích cú pháp của chủ sở hữu vì từ thứ ba chủ yếu hoạt động (mọi thứ bị phá vỡ sau đó); nó vẫn chưa hoàn hảo (một số hệ thống cho phép khoảng trắng trong tên người dùng).