欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

ls -la 艾特 阿发 阿法 有大用

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

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

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

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

在macOS中,终端中使用ls命令列出的文件中有一些文件会带有@符号,这个符号是macOS系统独有的,表示文件带有一些附加的信息。

这些附加信息可能包括在Finder中给文件添加的标签(tag)等。例如,如果在Finder中给一个文件添加了标签,那么在终端使用ls命令列出的文件名后面就会带有@符号。

因此,如果在macOS中使用ls命令看到文件名后面带有@符号,那么说明该文件有一些额外的信息被添加了进去,需要使用其他命令或者工具来查看和编辑这些信息。



看下面这个例子, 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 代表 "extended attributes"。)来查看对应信息,其添加的附加属性信息都是以键值对形式存储的,就是说有 属性名 和 属性值 直接 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 *

# 删除当前文件夹下所有文件的附加属性值,包含子文件夹的所有文件
xattr -cr *

三、一般常见的一些属性

所有这些带 @ 符号的文件,含有附加属性的文件,最常见的就是我们常用的 tag 标记,我知道的还有解压软件 The Unarchiver 解压出的文件也会带有它自己的附加属性值。

应用商店下载的软件也会有附加信息:

Kyle@Kyles-MBP /Applications % xattr -l EasyRes.app
com.apple.appstore.store_cohort: 7|date=1571481000000&sf=143465&pgtp=Search&pgid=d466721e-b8d6-42d8-aba2-e823828faa8c&ctxt=Search&issrch=1
com.apple.appstore.storefront: 143465
com.apple.appstore.vendor_name: Chris Miles


编辑于 2021-04-12 08:54


来自  https://zhuanlan.zhihu.com/p/363120823


普通分类: