蚊章汇 - 隐藏文件
type: channel
link: https://linuxcn.bwsl.wang/tag/%E9%9A%90%E8%97%8F%E6%96%87%E4%BB%B6/
items: 在 Linux 中隐藏文件和文件夹的那些事
items: 用 rcm 管理隐藏文件
items: 我的 Linux 主目录中的隐藏文件是干什么用的？

在 Linux 中隐藏文件和文件夹的那些事
type: item
date: 2022-07-08T22:27:00+08:00
description: 这篇面向初学者的文章探讨了在 Linux 中如何在普通视图中隐藏文件和文件夹。图形用户界面和命令行方法都有所涉猎。有时你需要在 Linux 中隐藏文件。不要误会，我不是指那些你不想让你的家人看到的“特殊文件”。尽管你可以隐藏这些特殊文件，但更好的办法还是用密码锁定它们以提供额外的保护。回到隐藏文件的话题。名称以 . 开头的任何文件或文件夹在 Linux 中是“隐藏的”。Linux 有很多这样的文件和文件夹，在普通视图中它们是隐藏的。这些主要是系统和程序所需的配置文件。用户通常不需要理会它们，因此它们在普通视图中是隐藏的，这样一来你就不会被许多看起来很奇怪的而不是你所创建的文件所淹没。下图展示了我的主目录中隐藏的文件和文件夹。如果你使用的是桌面版 Linux，你可以通过在文件管理器中按 Ctrl+H 快捷键来轻松 查看隐藏文件。在终端中，你可以使用 ls -a 命令显示隐藏文件和普通文件。那么，如何在 Linux 中创建隐藏文件呢？你只需用一个在命名的时候加一个 . 前缀。就是这样。在桌面版 Linux 里创建隐藏文件和文件夹（GUI 方法）如果你使用的是文件管理器，在文件或文件夹上右键并选择重命名选项。现在你所要做的就是在文件名的开头添加一个 .。当你以这种方式创建隐藏文件时，GNOME 的 Nautilus 文件管理器也会显示一个警告。你可以以相同的方式隐藏文件夹及其所有内容。你可以按 Ctrl+H 键来显示隐藏文件。哦！我是多么的喜欢 Ubuntu 中的键盘快捷键 和我使用的任何其他程序或操作系统！要使隐藏文件变回普通文件，只需再次重命名这些文件删掉文件名前缀的 . 即可。在 Linux 终端创建隐藏文件和文件夹（CLI 方法）如果你热衷于终端，你可以 使用 mv 命令 重命名文件。你只需在原始文件名的开头添加一个 .。mv filename .filename 你可以使用以下命令显示隐藏文件：ls -la 你也可以使用 ls -lA。这条命令不会显示点文件（. 和 ..）。额外提示：用非重命名的方法隐藏文件和文件夹（仅适用于 GUI）你刚刚学了在 Linux 中隐藏文件。问题是你必须重命名文件，而这种操作不适用于所有的场合。例如，在 Ubuntu 中，你会在目录中看到一个名为 snap 的文件夹。你不会使用它，但如果重命名它，你的 Snap 应用程序将无法按预期工作。类似的情况是，在 Ubuntu 22.04（安装有 Snap 版本的 Firefox）的 Downloads 目录下有一个 firefox.tmp 文件夹。有一个巧妙的技巧可以在 Linux 桌面中使用。它应该可以在 Nemo、Thunar、Dolphin 等各种文件管理器下工作，但我不能保证。它确实适用于 GNOME 的 Nautilus 文件管理器。因此，你在这里所做的是在你想要隐藏的文件或文件所在的目录中创建一个名为 .hidden 的新文件。按 Ctrl+H 显示隐藏文件并 打开 .hidden 文件 进行编辑。在单独的行中添加文件或文件夹的名称。注意不能使用绝对或相对路径。你想要隐藏的 文件和文件夹应与此特殊 .hidden 文件 位于同一路径下。这是我以不重命名的方式隐藏 cpufetch 目录和 pcloud 文件的示例：pcloud cpufetch 按 Ctrl+H 以再次隐藏 .hidden 文件。现在，关闭你的文件资源管理器并重新启动它。你将不会再看到 .hidden 文件中提到的文件和目录。如果你想再次查看它们，请按 Ctrl+H 键。如果你不想再隐藏文件，请从 .hidden 文件中删除其名称或完全删除 .hidden 文件。额外琐事：隐藏文件“功能”实际上是一个 bug你知道吗？在文件名的开头添加一个 . 来隐藏文件的“功能” 实际上是一个 bug？在早期的 UNIX 时代，当创建文件系统时，添加了 .（当前目录）和 ..（父目录）文件以方便导航。由于这些特殊的 . 和 .. 文件中没有实际数据，因此给 ls 命令添加了一个新的“功能”：该功能是检查文件名的第一个字符，如果它是一个点（.），则不再使用 ls 命令显示它。这对隐藏 . 和 .. 文件有效，但它引入了一个 “bug”：ls 命令的输出会隐藏任何文件名以 . 开头的文件。这个 bug 变成了一个功能，因为程序员喜欢它来“隐藏”他们的配置文件。ls 命令可能是后来修改添加了一个显示隐藏点文件的选项。Linux 遵循相同的约定，因为 Linux 是以 UNIX 为原型开发的。结论我讨论了如何从普通视图中创建隐藏文件。如果要创建让其他人无法访问的机密文件或文件夹，则应对其进行加密。我曾经写过 在 Linux 中使用密码锁定文件夹。这是一篇有点儿旧的文章，但它可能仍然有效。我希…

用 rcm 管理隐藏文件
type: item
date: 2019-01-22T18:46:23+08:00
description: 许多 GNU/Linux 程序的一个特点是有个易于编辑的配置文件。几乎所有常见的自由软件都将配置设置保存在纯文本文件中，通常采用结构化格式，如 JSON、YAML 或“类似 ini” 的文件中。这些配置文件经常隐藏在用户的主目录中。但是，基本的 ls 不会显示它们。UNIX 标准要求以点开头的任何文件或目录名称都被视为“隐藏”，除非用户特意要求，否则不会列在目录列表中。例如，要使用 ls 列出所有文件，要传递 -a 选项。随着时间的推移，这些配置文件会有很多定制配置，管理它们变得越来越具有挑战性。不仅如此，在多台计算机之间保持同步是大型组织所面临的共同挑战。最后，许多用户也对其独特的配置感到自豪，并希望以简单的方式与朋友分享。这就是用到 rcm 介入的地方。rcm 是一个 “rc” 文件管理套件（“rc” 是命名配置文件的另一种约定，它已被某些 GNU/Linux 程序采用，如 screen 或 bash）。 rcm 提供了一套命令来管理和列出它跟踪的文件。使用 dnf 安装 rcm。开始使用默认情况下，rcm 使用 ~/.dotfiles 来存储它管理的所有隐藏文件。一个被管理的隐藏文件实际保存在 ~/.dotfiles 目录中，而它的符号链接会放在文件原本的位置。例如，如果 ~/.bashrc 由 rcm 所管理，那么详细列表将如下所示。[link@localhost ~]$ ls -l ~/.bashrc lrwxrwxrwx. 1 link link 27 Dec 16 05:19 .bashrc -> /home/link/.dotfiles/bashrc [link@localhost ~]$rcm 包含 4 个命令：mkrc – 将文件转换为由 rcm 管理的隐藏文件lsrc – 列出由 rcm 管理的文件rcup – 同步由 rcm 管理的隐藏文件rcdn – 删除 rcm 管理的所有符号链接在两台计算机上共享 bashrc如今用户在多台计算机上拥有 shell 帐户并不罕见。在这些计算机之间同步隐藏文件可能是一个挑战。这里将提供一种可能的解决方案，仅使用 rcm 和 git。首先使用 mkrc 将文件转换成由 rcm 管理的文件。[link@localhost ~]$ mkrc -v ~/.bashrc Moving... '/home/link/.bashrc' -> '/home/link/.dotfiles/bashrc' Linking... '/home/link/.dotfiles/bashrc' -> '/home/link/.bashrc' [link@localhost ~]$接下来使用 lsrc 验证列表是否正确。[link@localhost ~]$ lsrc /home/link/.bashrc:/home/link/.dotfiles/bashrc [link@localhost ~]$现在在 ~/.dotfiles 中创建一个 git 仓库，并使用你选择的 git 仓库托管设置一个远程仓库。提交 bashrc 文件并推送一个新分支。[link@localhost ~]$ cd ~/.dotfiles [link@localhost .dotfiles]$ git init Initialized empty Git repository in /home/link/.dotfiles/.git/ [link@localhost .dotfiles]$ git remote add origin git@github.com:linkdupont/dotfiles.git [link@localhost .dotfiles]$ git add bashrc [link@localhost .dotfiles]$ git commit -m "initial commit" [master (root-commit) b54406b] initial commit 1 file changed, 15 insertions(+) create mode 100644 bashrc [link@localhost .dotfiles]$ git push -u origin master ... [link@localhost .dotfiles]$在第二台机器上，克隆这个仓库到 ~/.dotfiles 中。[link@remotehost ~]$ git clone git@github.com:linkdupont/dotfiles.git ~/.dotfiles ... [link@remotehost ~]$现在使用 rcup 更新受 rcm 管理的符号链接。[link@remo…

我的 Linux 主目录中的隐藏文件是干什么用的？
type: item
date: 2018-03-06T02:21:43+08:00
description: 在 Linux 系统中，你可能会在主目录中存储了大量文件和文件夹。但在这些文件之外，你知道你的主目录还附带了很多隐藏的文件和文件夹吗？如果你在主目录中运行 ls -a，你会发现一堆带有点前缀的隐藏文件和目录。这些隐藏的文件到底做了什么？在主目录中隐藏的文件是干什么用的?通常，主目录中的隐藏文件和目录包含该用户程序访问的设置或数据。它们不打算让用户编辑，只需要应用程序进行编辑。这就是为什么它们被隐藏在用户的正常视图之外。通常，删除和修改自己主目录中的文件不会损坏操作系统。然而，依赖这些隐藏文件的应用程序可能不那么灵活。从主目录中删除隐藏文件时，通常会丢失与其关联的应用程序的设置。依赖该隐藏文件的程序通常会重新创建它。 但是，你将从“开箱即用”设置开始，如全新用户一般。如果你在使用应用程序时遇到问题，那实际上可能是一个巨大的帮助。它可以让你删除可能造成麻烦的自定义设置。但如果你不这样做，这意味着你需要把所有的东西都设置成原来的样子。主目录中某些隐藏文件的特定用途是什么？每个人在他们的主目录中都会有不同的隐藏文件。每个人都有一些。但是，无论应用程序如何，这些文件都有类似的用途。系统设置系统设置包括桌面环境和 shell 的配置。shell 和命令行程序的配置文件：根据你使用的特定 shell 和类似命令的应用程序，特定的文件名称会变化。你会看到 .bashrc、.vimrc 和 .zshrc。这些文件包含你已经更改的有关 shell 的操作环境的任何设置，或者对 vim 等命令行实用工具的设置进行的调整。删除这些文件将使关联的应用程序返回到其默认状态。考虑到许多 Linux 用户多年来建立了一系列微妙的调整和设置，删除这个文件可能是一个非常头疼的问题。用户配置文件：像上面的配置文件一样，这些文件（通常是 .profile 或 .bash_profile）保存 shell 的用户设置。该文件通常包含你的 PATH 环境变量。它还包含你设置的别名。用户也可以在 .bashrc 或其他位置放置别名。PATH 环境变量控制着 shell 寻找可执行命令的位置。通过添加或修改 PATH，可以更改 shell 的命令查找位置。别名更改了原有命令的名称。例如：一个别名可能将 ls -l 设置为 ll。这为经常使用的命令提供基于文本的快捷方式。如果删除 .profile 文件，通常可以在 /etc/skel 目录中找到默认版本。桌面环境设置：这里保存你的桌面环境的任何定制。其中包括桌面背景、屏幕保护程序、快捷键、菜单栏和任务栏图标以及用户针对其桌面环境设置的其他任何内容。当你删除这个文件时，用户的环境会在下一次登录时恢复到新的用户环境。应用配置文件你会在 Ubuntu 的 .config 文件夹中找到它们。 这些是针对特定应用程序的设置。 它们将包含喜好列表和设置等内容。应用程序的配置文件：这包括应用程序首选项菜单中的设置、工作区配置等。 你在这里找到的具体取决于应用程序。Web 浏览器数据：这可能包括书签和浏览历史记录等内容。这些文件大部分是缓存。这是 Web 浏览器临时存储下载文件（如图片）的地方。删除这些内容可能会降低你首次访问某些媒体网站的速度。缓存：如果用户应用程序缓存仅与该用户相关的数据（如 Spotify 应用程序存储播放列表的缓存），则主目录是存储该目录的默认地点。 这些缓存可能包含大量数据或仅包含几行代码：这取决于应用程序需要什么。 如果你删除这些文件，则应用程序会根据需要重新创建它们。日志：一些用户应用程序也可能在这里存储日志。根据开发人员设置应用程序的方式，你可能会发现存储在你的主目录中的日志文件。然而，这不是一个常见的选择。结论在大多数情况下，你的 Linux 主目录中的隐藏文件用于存储用户设置。 这包括命令行程序以及基于 GUI 的应用程序的设置。删除它们将删除用户设置。 通常情况下，它不会导致程序被破坏。via: https://www.maketecheasier.com/hidden-files-linux-home-directory/作者：Alexander Fox 译者：MjSeven 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出