相关文章推荐
深情的馒头  ·  macOS 中terminal ls ...·  1 年前    · 
深情的馒头  ·  macOS 中terminal ls ...·  1 年前    · 
深情的馒头  ·  macOS Ventura - Apple ...·  1 年前    · 
macOS 中 terminal ls 出的文件带 @ 是什么意思

macOS 中 terminal ls 出的文件带 @ 是什么意思

2 年前 · 来自专栏 知识分享

macOS 中 terminal ls 出的文件带 @ 是什么意思

macOS 中使用终端 ls 列出的文件中有一些文件会带有 @ 符号,一直不知道具体表示什么意思

今天查了下,这个 @ 符号是 macOS 系统独有的,表示文件带有一些附加的信息,比如你在 Finder 中给文件添加的 tag 就属于此类。

看下面这个例子, website.txt 在 finder 中是添加了 tag 的,所以它后面会有 @ 符号。


Kyle@Kyles-MBP attr test % ll
total 16
-rw-r--r--  1 Kyle  staff     0 Apr  8 09:04 README.md
-rw-r--r--  1 Kyle  staff  1008 Apr  8 09:05 kyle-file.txt
-rw-r--r--@ 1 Kyle  staff   526 Apr  8 09:06 website.txt

一、查看文件的附加属性

1. 查看属性名

可以通过 xattr 来查看对应信息,其添加的附加属性信息都是以键值对形式存储的,就是说有 属性名 属性值 直接 xattr 文件 的形式可以查看文件上所有的 属性名 ,可以看到下面这个文件有两个属性名

Kyle@Kyles-MBP attr test % xattr website.txt 
com.apple.FinderInfo
com.apple.metadata:_kMDItemUserTags

2. 查看属性名和值

通过添加 -l 参数 xattr -l 文件 ,可以查看 属性名 + 属性值

Kyle@Kyles-MBP attr test % xattr -l website.txt 
com.apple.FinderInfo:
00000000  00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000020
com.apple.metadata:_kMDItemUserTags:
00000000  62 70 6C 69 73 74 30 30 A1 01 5A 50 65 72 73 6F  |bplist00..ZPerso|
00000010  6E 61 6C 0A 32 08 0A 00 00 00 00 00 00 01 01 00  |nal.2...........|
00000020  00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 15                             |.......|
00000037

3. 列文件时显示附加属性名

在 ls 文件的时候,也可以通过添加参数来查看文件的附加属性名 ls -l@

Kyle@Kyles-MBP attr test % ls -l@
total 16
-rw-r--r--  1 Kyle  staff     0 Apr  8 09:04 README.md
-rw-r--r--  1 Kyle  staff  1008 Apr  8 09:05 kyle-file.txt
-rw-r--r--@ 1 Kyle  staff   526 Apr  8 09:06 website.txt
    com.apple.FinderInfo      32 
    com.apple.metadata:_kMDItemUserTags   55

二、编辑查看相应的信息

使用 xattr 命令来操作文件的 附加属性

-c 清除所有附加属性信息
-w 添加某个附加属性信息
-d 删除某个附加属性信息
-p 显示某个附加属性的值

修饰参数

-r 操作包含子文件夹的文件
-l 附加属性名和值


Kyle@Kyles-MBP attr test % xattr -p com.apple.FinderInfo website.txt
00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

其它具体的操作说明可以查看说明手册,输入 man xattr 查看

说一些常用的

# 删除某个文件所有附加属性
xattr -c 文件名
# 删除当前文件夹下所有文件的附加属性值
xattr -c *