Oh-My-Zsh - 为什么复制到 USB 后目录的 ls 颜色会改变?

Oh-My-Zsh - 为什么复制到 USB 后目录的 ls 颜色会改变?

如果这个问题看起来愚蠢,我深感抱歉,但我似乎在任何地方都找不到答案。

我需要在学校电脑上重置我的主目录,因此我将重要文件复制到 USB 上,但当我将 USB 内容复制回电脑以确保正确复制时,我注意到在我的一个项目中,当我使用 ls 时,目录会以黄色背景和黑色文本突出显示,而不是通常显示的浅蓝色。这是什么意思?在让他们从我的主目录中删除原始文件之前,我想确保这不是问题。

我在 iTerm2 中使用 oh-my-zsh,使用默认主题,运行 OSX Sierra。我添加了图片,以便您可以看到我所指的内容。出于某种原因,它只在 1 个项目上执行此操作,我似乎无法弄清楚原因。

正常 LS 颜色:

在此处输入图片描述

‘突出显示’ 的目录名称:

编辑-添加ls -la输出、file *输出和echo $LSCOLORS输出

ls -la输出:

echo $LSCOLORS输出(两者相同):

file *输出(两者相同):

答案1

这是因为rwxrwxrwx您副本中的每个目录和每个文件都设置了权限。这可能是因为:

  • 您的 USB 上的文件系统不支持 Unix 方式的权限和所有权;
  • 或者它是以一种覆盖此的方式安装的;
  • 或者您以不保留权限的方式复制了文件和目录(研究cp -a …)。

相比于这个问题并在那里发表评论。特别是:

如果您将文件保存在 tarball 中,则可以保留所有 ext4 文件系统元数据。您不会丢失任何东西。

它说的是ext4(您可能使用了其他文件系统)但情况类似。我认为从原始文件/目录创建的 tarball 是最好的解决方案。

rwxrwxrwx意味着每个用户都可以修改这些文件和目录,因此在多用户环境中这是一个大问题。此外,ssh如果某些文件可供其他用户访问,某些程序(例如)可能会拒绝运行。

相关内容