Câu trả lời:
Các thuộc tính được xử lý bởi lsattr
/ chattr
trên Linux và một số thuộc tính có thể được lưu trữ bởi khá nhiều hệ thống tệp (ext2 / 3/4, reiserfs, JFS, OCFS2, btrfs, XFS, nilfs2, hfsplus ...) và thậm chí được truy vấn qua CIFS / SMB (khi có phần mở rộng POSIX) là cờ. Chỉ cần bật hoặc tắt các bit để vô hiệu hóa hoặc kích hoạt một thuộc tính (như bất biến hoặc lưu trữ ...). Làm thế nào chúng được lưu trữ là hệ thống tập tin cụ thể, nhưng nói chung là một bản ghi 16/32/64 bit trong inode.
Danh sách đầy đủ các cờ được tìm thấy trên các hệ thống tệp gốc của Linux (ext2 / 3/4, btrfs ...) mặc dù không phải tất cả các cờ đều áp dụng cho tất cả các FS và đối với các FS không phải bản địa khác, Linux cố gắng ánh xạ chúng tương đương các tính năng trong hệ thống tập tin tương ứng. Ví dụ, cờ simmutable được lưu trữ bởi OSX trên các hệ thống tệp HFS + được ánh xạ tới cờ bất biến tương ứng trong Linux chattr
. Cờ nào được hỗ trợ bởi hệ thống tệp nào hầu như không được ghi lại. Thông thường, đọc mã nguồn kernel là lựa chọn duy nhất.
Mặt khác, các thuộc tính mở rộng, như được thiết lập với setfattr
hoặc attr
trên Linux lưu trữ nhiều hơn các cờ. Chúng cũng được gắn vào một tệp và là các cặp khóa / giá trị có thể là (cả khóa và giá trị) các mảng byte tùy ý (mặc dù có giới hạn về kích thước trên một số hệ thống tệp).
Khóa có thể là ví dụ: system.posix_acl_access
hoặc user.rsync.%stat
. Không system
gian tên được dành riêng cho hệ thống (bạn sẽ không thay đổi POSIX ACL bằng setfattr
, nhưng hơn nữa setfacl
, POSIX ACL chỉ được lưu trữ dưới dạng các thuộc tính mở rộng ít nhất trên một số hệ thống tệp), trong khi các user
ứng dụng có thể sử dụng không gian tên rsync
sử dụng --fake-super
tùy chọn này để lưu trữ thông tin về quyền sở hữu hoặc quyền khi bạn không phải là siêu người dùng).
Một lần nữa, làm thế nào chúng được lưu trữ là hệ thống tập tin cụ thể. Xem WikiPedia để biết thêm thông tin .
lsattr
/ chattr
làm việc cho các ext
hệ thống không tập tin? Nếu không, làm thế nào bạn thay đổi cờ trên các ext
hệ thống không phải trên Linux? Ngoài ra attr
trang man nói rằng nó được viết cho XFS (mặc dù nó hoạt động với tôi trên ext4
). Tôi thực sự đã dành một thời gian dài để xem xét điều này ngày hôm qua, thông tin tốt là khó có thể đi qua. Vui lòng xem - unix.stackexchange.com/questions/118840/ từ
lsattr/chattr
dành cho cờ tập tin. Chẳng hạn, tất cả các cờ đều được hỗ trợ bởi tất cả các hệ thống tệp, một số trong số chúng như nén sẽ không hoạt động trên ext4 nhưng sẽ hoạt động trên btrfs.
reiserfs
.
Tất cả mọi thứ đã được vuốt ve inode
. Khi bạn thay đổi một tập tin, thực sự bạn thay đổi. Để inode
kịch bản, bạn có một lệnh tốt:
stat --format=%a yourfile
Bạn có thể sử dụng %variable
và trả lại một hữu ích từinode
Nhưng câu trả lời của bạn:
xattr
là trên MacOS và chattr
trên hộp linux.
attr
lệnh được dành cho các hệ thống tệp XFS, lệnh độc lập với hệ thống tệp tương đương làsetfattr