mac os环境下运行'ls -al'后出现“+”或“@“标记

2020-04-22 宋洋葱 宋洋葱

mac环境下用python读取文件的时候发现错误:PermissionError: [Errno 13] Permission denied: 'WechatIMG23.jpeg

使用ls -lh .img/命令查看文件,发现多了“@”标志

-rw-r--r--@ 1 songyangcong  staff    87K  4 22 11:16 WechatIMG22.jpeg
-rw-r--r--@ 1 songyangcong  staff   124K  4 22 11:16 WechatIMG23.jpeg

为了保护系统文件macos的app产生的文件会附带有“@”标志,表示该文件具有扩展属性。还有的会附带“+”标志,

使用命令xattr -l img/WechatIMG23.jpeg可查看扩展属性,存储格式为:name:value

com.apple.metadata:_kMDItemUserTags:0000000...(省略部分)
com.apple.quarantine: 0082;5e9fbabe;WeChat;

若要删除“@”标记,则需要使用命令xattr -d name file删除扩展属性

xattr -d com.apple.metadata:_kMDItemUserTags img/WechatIMG23.jpeg
xattr -d com.apple.quarantine img/WechatIMG23.jpeg

参考