我在 unix 中对我的文件夹使用了这个命令:
chmod -R go-rwx *
为了更改组和其他人的权限。 这样做,许多文件变成了绿色颜色,甚至是简单的数据文件。 为什么会这样?这是什么意思? 它会以不好的方式影响我的文件吗? 它们现在似乎可以正常工作,但我担心它们的一般功能。 谢谢!
最佳答案
您提到的命令不太可能导致 ls
以绿色打印您的文件。当启用 ls
颜色时,默认情况下可执行文件以浅绿色打印。由于 chmod +R go-rwx
仅删除权限,它不会导致任何文件被标记为可执行文件,因此不会使 ls
以绿色打印它们。
相反,我相信造成这种情况的原因一定是您输入了一个不同的命令,它不小心将所有这些文件标记为可执行文件。这实际上很常见。下面是一个典型的场景:你想让一个目录和所有的子目录对所有用户都是可读的并且可以进入。所以你执行 chmod -R a+rx top_directory
。这可行,但作为副作用,您还为所有这些目录中的所有普通文件设置了可执行标志。如果启用了颜色,这将使 ls
以绿色打印它们,这在我身上发生过好几次。您可以通过执行 chmod -R a+rX top_directory
来避免这种情况,这只会为目录设置可执行位。
要让您的文件不再是绿色的,您必须清除那些可执行位。如果这些目录中的文件实际上都不应该是可执行的,这很简单:
$ chmod -R a-x top_directory
$ chmod -R u+X top_directory
这将删除所有文件和目录的可执行标志,然后仅为目录(当前用户)将其添加回来。但是,如果某些文件实际上应该是可执行的,您将不得不检查它们并手动修复,这可能很乏味。
将一些文件错误地标记为可执行并不是一个大问题。它们仍将正常运行。这有点困惑,如果当前目录 (.
) 在您的 $PATH
中,它们可能会出现在命令选项卡完成中。所以你可以安全地忽略这个问题。
关于Unix-更改权限-文件变绿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27568217/