我是 Linux 的初学者,刚刚开始使用它pass
来管理我的密码。我尝试保持我的主目录相当干净,但pass
创建了 2 个点文件(.gnupg
和.password-store
),我不知道如何移动到其他目录(.local
// .config
).cache
。我知道我可以链接它们,但它并不能解决~/
.
$ ls -a
.cache
.config
Desktop
Documents
Downloads
.gnupg
.local
Music
.password-store
Pictures
Videos
指定的问题:有没有办法移动.gnupg
到.password-store
另一个目录并仍然使用它们?
二进制中有一个PREFIX
变量来定义它,但我真的不知道如何改变它。
PREFIX="${PASSWORD_STORE_DIR:-$HOME/.password-store}"
这段shell代码的含义:
is:设置
PREFIX
为 的值$PASSWORD_STORE_DIR
,使用默认的$HOME/.password-store
if$PASSWORD_STORE_DIR
没有设置。也就是说,您可以将环境变量设置为
PASSWORD_STORE_DIR
您想要设置PREFIX
为所需值的任何路径。因此,比如说,在您.profile
或您喜欢管理环境变量的任何地方,设置:这是记录在案的。检查
man 1 pass
:如果应用程序支持移动点文件,请随意这样做。毕竟,他们宣传了这种支持,如果它不起作用,那是一个很可能会被修复的错误。
gpg
使用GNUPGHOME
环境变量也是如此:建议:不要担心应用程序在哪里创建其 .dot 配置文件。在您的日常计算机使用中也没有关系:这些配置文件大部分时间都在您的视线之外。
原因:由应用程序决定将其用户配置文件放在何处。旧的约定是将配置文件直接放在您的主文件夹中,就像
pass
似乎做的那样,即$HOME/.password-store
. 最近,惯例是.config
确实将这种配置移到了下面。如果您想接管用户配置存储位置的管理,在许多情况下您将需要编辑源代码。一旦开始这样做,您还需要继续修补软件更新。因此,作为一般建议:将配置文件的放置位置留给开发人员。反过来,开发人员的行为符合当前惯例:否则他/她可能会收到大量错误请求。
无论如何我都想改变它
pass
:不过,为了学习目的,你可以很容易地改变它pass
。这是开源的。pass
在这种情况下,目录是在脚本的 bash 源代码中定义的。原则上,您可以将其更改为:由于
PREFIX
在脚本中分配变量的方式,有一种更安全的方法,不需要更改脚本(感谢 muru 的评论)。即PASSWORD_STORE_DIR
在启动之前设置或导出变量pass
,即在脚本中,变量 PREFIX 将假定
PASSWORD_STORE_DIR
if 它已定义的值,否则将设置为$HOME/.password-store
。这可能是需要的任何更改。任何文件夹都是用
-p
开关创建的,因此如果整个文件夹结构.config
还不存在(例如在一个非常新安装的系统上),则将创建整个文件夹结构。这是开源的,因此您可以尝试:以新名称复制原始文件,进行编辑并查看它是如何工作的。如果它不起作用,您仍然可以复制回原始版本。
请注意,您需要再次研究要更改的每个应用程序的源代码。在某些情况下,可能需要更改不止一行。
最后,再次......不要打扰。
如果它们是由程序直接在您的主目录中创建的,请不要理会这些点文件。
您的应用程序将不知道如何映射到“备用”位置,并且由不同的应用程序生成大量的点文件并不是非典型的。点文件和点文件夹旨在用于存储应用程序数据,一般用户不可见(即文件浏览器默认不显示隐藏文件)。
除非您使用的应用程序允许您配置自定义数据目录,否则请不要理会您的点文件。大多数应用程序没有调整或移动文件或重新配置查找数据的位置的机制 - 所以不要管它们。