今天遇到了一个奇怪的问题, 一个正常的文件夹, 无法正常打开, 只能右键”显示文件夹内容open content”方式打开.

试验了一下, 所有的文件夹,

  1. 改成xxx.md的文件名字(只要是.md结尾),
  2. 然后就会被识别为文件,
  3. 然后再改回去, 就不行了, 文件夹就无法直接打开了.

再terminal里面ll了一下发现:

ls -l #下面是结果:
drwxr-xr-x  18 machangkun  staff   612B Nov 23 11:52 Abricotine/
drwxr-xr-x  15 machangkun  staff   510B Nov 23 12:01 Remarkable/
drwxr-xr-x  31 machangkun  staff   1.0K Nov 23 11:50 dillinger/
drwxr-xr-x@ 27 machangkun  staff   918B Nov 23 11:45 editor_md/
drwxr-xr-x  13 machangkun  staff   442B Nov 23 12:01 ghostwriter/
#看到了吗: drwxr-xr-x@ 27 machangkun  staff   918B Nov 23 11:45 editor_md/
#这一行的权限有个@

既然定位到了异常, 后面就看伟大的stackoverflow了: https://stackoverflow.com/questions/41290761/mac-osx-file-permissions-has-how-to-remove-that

xattr -c <yourfilename>
# or
xattr -cr <yourfoldername>

完美解决, 就是这个@的问题, 当文件夹改为苹果可以识别的文件结尾, 那么苹果的finder就会识别为文件形式, 但是, 当你改回为文件夹的时候, 他却没有自动识别为文件夹形式, 这个就是苹果的bug. 不一定每次都发生.

具体解释这里有: https://apple.stackexchange.com/questions/42177/what-does-signify-in-unix-file-permissions

  • The @ is displayed with a extended attribute is set. 扩展属性
  • The + is displayed for an ACL. 扩展安全信息
ls -@l <yourfilename>#这个可以看到扩展了啥.

这里有更详细的解释: http://www.mactipsandtricks.com/website/articles/Wiley_HT_appBundles2.lasso

正常情况下, 一个文件夹, 加了后缀, 变成类似文件的显示, 去掉后缀, 应该能变回文件夹, 我做了实验:

  • 加.app啥的确实是正常的, 只要在去掉后缀, 就一切正常了.
  • 但是, 加了.md, 就仿佛中了咒语, 不乱再怎么弄都不行了, 加.app再删除都不能去除这个魔咒.