2
我在Ubuntu bash中遇到了一個有趣的行爲,我無法完全理解。 如果我將擴展文件屬性添加到文件,然後更改它 - 從文件中刪除屬性。從我的角度來看,沒問題。擴展文件屬性和bash
[email protected]:~/tmp$ echo "aaa" > testattr
[email protected]:~/tmp$ setfattr --name "user.test" --value "Tested" testattr
[email protected]:~/tmp$ getfattr --name "user.test" testattr
# file: testattr
user.test="Tested"
[email protected]:~/tmp$ vi testattr
< change something in file and save it >
[email protected]:~/tmp$ getfattr --name "user.test" testattr
testattr: user.test: No such attribute
但是,如果我用bash寫文件 - 文件屬性留在原來的位置。 有人可以解釋這種行爲嗎?
[email protected]:~/tmp$ echo "aaa" > testattr
[email protected]:~/tmp$ setfattr --name "user.test" --value "Tested" testattr
[email protected]:~/tmp$ getfattr --name "user.test" testattr
# file: testattr
user.test="Tested"
[email protected]:~/tmp$ echo "bbb" > testattr
[email protected]:~/tmp$ getfattr --name "user.test" testattr
# file: testattr
user.test="Tested"
謝謝你的解釋。實際上,我寧願嘗試弄清楚如果文件被改變如何讓屬性被丟棄=) – incogn1to
@PāvelsReško您可以使用相同的'inotify'庫來檢測修改後的文件並刪除它們的屬性。 –
@PāvelsReško實際上'bash'顯示了最期望的行爲,它會在不刪除和重新創建的情況下更改文件內容。在這種情況下,預計不會出現「vi」行爲。 –