FlossDoc: 請協力 GPLv3 的中文翻譯工作。
改變 NTFS 檔案的屬性
FlossDoc,自由中文開源知識庫
[编辑]
使用 getfattr/setfattr 改變檔案唯讀/隱藏/系統等屬性
| 屬性 | 值 | 值 (little-endian) | 用途 |
|---|---|---|---|
| 唯讀 (r, Read-only) | 0x00000001 | 0x01000000 | 檔案只可以被讀取而不能被寫入或刪除。 |
| 隱藏 (h, Hidden) | 0x00000002 | 0x02000000 | Windows/MS-DOS 系統預設不會列出此檔案。 |
| 系統 (s, System) | 0x00000004 | 0x04000000 | 檔案為系統檔案 (system file),Windows/MS-DOS 系統預設不會列出此檔案。 |
| 卷宗標簽 (v, Volume Label) | 0x00000008 | 0x08000000 | 表示有關檔案項目實際為一個 volume label (不可以更變屬性),系統會略過此項目。 |
| 目錄 (d, Directory) | 0x00000010 | 0x10000000 | 表示有關檔案項目實際為一個子目錄 (不可以更變屬性)。 |
| 封存 (a, Archive) | 0x00000020 | 0x20000000 | 檔案需要被封存。FAT 檔案系統上的一般檔案預設會開啟封存屬性,當檔案被 XCOPY 等命令備份後,其封存屬性會被關閉,直至檔案內容被更改時才再開啟封存屬性。這樣,XCOPY 等命令可以使用封存屬性判斷檔案在上次備份後內容是否有被改動,這次是否需要備份。 |
| 暫存 (Tempopary) | 0x00000100 | 0x00010000 | |
| 壓縮目錄 (Compressed) | 0x00000800 | 0x00080000 | |
| 離線 (Offline) | 0x00001000 | 0x00100000 | |
| Not Content Indexed | 0x00002000 | 0x00200000 |
要在 GNU/Linux 上改變 NTFS 中檔案的屬性可以使用擴充屬性 (Extended Attributes)。系統管理先要安裝套件 attr。
使用命令 getfattr -h -e hex -n system.ntfs_attrib 檔案名稱 可以顯示 NTFS 檔案的屬性:
# getfattr -h -e hex -n system.ntfs_attrib "/media/Win7/Users/John Doe/Desktop/Hello.txt" system.ntfs_attrib=0x20000000
上例表示 Hello.txt 檔案只開啟了封存屬性 (archive attribute, 0x00000002)。
使用命令 setfattr -h -v 屬性值 -n system.ntfs_attrib 檔案名稱 可以顯示 NTFS 檔案的屬性:
# setfattr -h -v 0x21000000 -n system.ntfs_attrib "/media/Win7/Users/John Doe/Desktop/Hello.txt"
上例把 Hello.txt 設定開啟唯讀 (read-only, 0x00000001) 和封存 (archive, 0x00000002) 屬性。
ntfs-3g-2010.5.22AC.5 開始支援擴充屬性 system.ntfs_attrib_be 自動轉換 little-endian 至 big-endian:
# getfattr -h -e hex -n system.ntfs_attrib_be "/media/Win7/Users/John Doe/Desktop/Hello.txt" system.ntfs_attrib=0x00000002 # setfattr -h -v 0x00000021 -n system.ntfs_attrib_be "/media/Win7/Users/John Doe/Desktop/Hello.txt" #
[编辑]
請參看
[编辑]
外部連結
- NTFS-3G Advanced - Extended Attributes (Jean-Pierre André 2010)

