Linux xattr 命令詳解

唐青枫發表於2024-11-29

簡介

Linux 中的 xattr 命令用於管理檔案的擴充套件屬性。擴充套件屬性儲存標準屬性中未包含的附加後設資料(如許可權、所有者和時間戳)。它們通常由特定的應用程式或檔案系統(例如,aclSELinux 標籤)使用。

關鍵概念

  • 擴充套件屬性:與檔案相關的後設資料,以鍵值對的形式儲存
  • 屬性的通用名稱空間:

    • user:通用,普通使用者可訪問
    • security:用於安全框架,如 SELinux
    • system:用於系統級別的後設資料
    • trusted:需要 root 訪問許可權的後設資料

用法示例

列出檔案的所有擴充套件屬性

xattr example.txt

# 輸出如:user.comment

檢視擴充套件屬性的值

xattr -p [attribute_name] [file]

xattr -p user.comment example.txt

# 輸出如:This is a sample comment.

設定或更新擴充套件屬性

xattr -w [attribute_name] [value] [file]

xattr -w user.comment "This is a test comment" example.txt

移除指定的擴充套件屬性

xattr -d [attribute_name] [file]

xattr -d user.comment example.txt

列出檔案的所有擴充套件屬性的鍵和值

xattr -l [file]

xattr -l example.txt

複製一個檔案的擴充套件屬性到另一個檔案

xattr --copy-source=[source_file] [destination_file]

xattr --copy-source=example.txt copy.txt

遞迴列出目錄所有檔案的擴充套件屬性

xattr -r [directory]

遞迴刪除目錄所有檔案的擴充套件屬性

xattr -cr [directory]

常見問題

  • ext4XFSBtrfs 檔案系統支援擴充套件屬性,FAT32 檔案系統不支援。
  • 如果擴充套件屬性不工作,使用下列命令啟用:
sudo mount -o remount,user_xattr /mount/point

相關文章