根文件显示在主目录中

根文件显示在主目录中

我的某些根文件(如 .cache、.config、.ipython、.xsession-errors、.bashrc、.bash_history 等)显示在我的主目录中。当我在终端中输入任何内容时,bash_history 文件会不断更新。此外,当我尝试删除这些文件时,我的 ubuntu 崩溃了,我不得不重新启动笔记本电脑,之后这些文件再次出现在我的主目录中。当我尝试将它们移动到根目录中时,它显示这些文件已经存在于根目录中,无法移动。我很困惑该怎么做。虽然它没有导致任何错误,但我认为这不应该发生。

答案1

这些文件不是“根”文件。它们是用户帐户的正常配置或状态文件。通常,如果程序在启动时找不到其配置文件,它将使用唯一名称生成一个配置文件。传统上,这是主目录中的文件,以 开头.并以某种方式包含程序名称。如今,越来越多的程序将其配置放入.config子目录中。

你可能会感到困惑的是就这一点而言,它只是一个普通用户。因此,它在 中有自己的一组配置文件/root/,这些文件看起来与你的主目录中的配置文件一模一样。

.这些文件名前面的常规字符将其隐藏,因此它不会出现在正常的目录列表中。

在正常操作中,您不应该删除它们。相反,如果您对它们感到困惑,请尝试阅读相关程序手册页和文档(例如 bash 手册页),以获取有关这些文件的作用以及如何以有用的方式更改它们的更多信息。

答案2

你是当然这些文件属于 root 吗?

cd ~
ls -la

检查一下。您提到的这些文件将通过运行用户应用程序来生成,以保存用户(例如您)所做的元数据和配置选择。因此,我猜您会发现这些文件(.cache、.config、...)归您(用户)所有。它们应该在那里,一切都很好。

答案3

这些是配置目录/文件您的用户帐户。它们应该归您所有(您的用户 ID)。使用

cd
ls -la

并在目录树的更深层

find ~ -ls | grep " root "

或将搜索限制在隐藏目录

find ~/.[^.]* -ls | grep " root "

root如果其中一些文件归。使用命令将所有权改回您的用户 ID 可能会有效chown。也许最好删除配置文件并让程序为您创建一个新的配置文件。


如果您使用 运行带有图形用户界面 (GUI) 且具有提升权限的程序,则sudo该程序的您自己的配置可能会被 拥有的文件覆盖root,并且当您尝试使用正常权限(作为您的用户 ID)运行该程序时,该程序可能(很可能会)失败。

要以提升的权限运行,您可以使用

sudo -H GUI-program

例如编辑系统文件,该文件由root

sudo -H gedit filename

这使得系统将配置保存在用户的正确位置root

使用文本模式工具以提升的权限执行任务是个好主意(无图形用户界面),例如使用编辑器nano

sudo nano filename

如果你运行的是 Wayland(而不是 Xorg),事情会更复杂。请参阅此链接,

为什么 gksu/gksudo 或使用 sudo 启动图形应用程序不能与 Wayland 一起使用?

相关内容