终端上文件权限末尾的@符号是什么?

终端上文件权限末尾的@符号是什么?

我的应用程序中有一个声音文件,但 iPhone 无法播放。检查完其他问题后,我在终端中检查了文件权限。

我可以看到,该文件的文件权限末尾有一个-@。我不知道这是否是问题所在,但这是与其他可以正常播放的声音文件的唯一区别。

  1. 这是什么标志?
  2. 这会造成问题吗?

编辑

谢谢

这是我得到的:

com.apple.FinderInfo:
00000000  4D 34 41 20 68 6F 6F 6B 00 00 00 00 00 00 00 00  |M4A hook........|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000020

谢谢 Shani

答案1

“@”符号(ls 手册页中没有记录)表示该文件具有扩展属性。您可以使用该命令xattr -l <filename>显示它们。

至于如何读取它,这是十六进制数据的结构表示:

struct finder_info {
    char[4] filetype; // x,y coords of top left corner for directories
    char[4] creator; // x,y coords for bottom right corner for directories
    char[2] finder_flags;
    char[2] finder_loc_v;
    char[2] finder_loc_h;
    char[2] opaque1; // Icon ID?

    char[2] scroll_position_v;
    char[2] scroll_position_h;
    char[2] reserved1;
    char[6] opaque_finder_flags
    char[2] reserved2;
    char[2] putAwayFolderID;
};

为了解决您的问题,我找到了解决方法:

在桌面上,使用 Finder 创建一个空的新文件夹,并将其命名为 Foo。

按住 Option 键,将视频文件拖到 Foo 文件夹中。这会复制文件,而不仅仅是移动文件。

然后,在终端中逐行输入以下行:

cd ~/Desktop
cp -XR Foo NewFoo
cd NewFoo
ls -@l

@ 符号消失了吗?现在您可以打开文件了吗?

相关内容