天空小小岛技术论坛

 找回密码
 注册
搜索
天空小小岛技术论坛 门户 查看主题

[转]mac下文件带有扩展属性的问题

发布者: 一粒米 | 发布时间: 2013-10-23 12:43| 查看数: 6638| 评论数: 0|帖子模式

在mac os下HFS+的文件系统上 文件经常会被附加上mac专有的扩展属性
具体的表现是用ls -l 查看时 会有@标志 比如

$ ls -l
total 0
-rw-r–r–@ 1 Tkxxd  staff  0 23 Oct 12:21 t1.txt
-rw-r–r–  1 Tkxxd  staff  0 23 Oct 12:21 t2.txt


这个属性是用户在Finder里对文件进行任意操作时 就会附加上的 -  -  比如右键看Info 然后在Spotlight Commends里写上几个字再删掉  @属性是不会删掉的

问题来了 – 如果把文件从mac系统用tar打包 拷贝到linux系统释放文件  @属性会造成莫名的错误

我就在我们公司的linux服务器上发布网站的时候碰到过这个事情  页面里莫名出现一段com.apple.metadata *** 这样的字段

google了一阵 原因在于tar命令本身默认并不区分extend attributes 但是mac下的cp命令做的更好 选项 -X 即可忽略这些属性

man cp:   -X    Do not copy Extended Attributes (EAs) or resource forks.
https://developer.apple.com/libr ... ages/man1/cp.1.html

对于这个问题 nabble上的这个帖子有着很精简的回答  即在打包前先用cp -XR 拷贝出一份没有扩展属性的 然后再tar

对于大量文件传输来说这是最简单的办法

如果想手动去除掉文件的@属性 可以使用命令 xattr
  1. $ xattr -l 1.txt
  2. com.apple.metadata:kMDItemFinderComment:
  3. 0000   62 70 6C 69 73 74 30 30 50 08 00 00 00 00 00 00    bplist00P…….
  4. 0010   01 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00    …………….
  5. 0020   00 00 00 00 00 00 00 00 00 09                      ……….

  6. $ xattr -d com.apple.metadata:kMDItemFinderComment t1.txt
  7. $ xattr -l t1.txt
  8. $
复制代码
此时就没有特殊属性了

本文出处已经难寻,原作者可以找我加链接。

最新评论

小黑屋|手机版|Archiver|天空小小岛 ( 京ICP备17043412号-1|

GMT+8, 2018-11-21 11:27 , Processed in 0.095556 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表