通过停止搜索链接目录

通过停止搜索链接目录

我用经过(标准 unix 密码管理器)并且它停止搜索链接目录,例如:

> pass find test
Search Terms: test
├── mine -> /mnt/params/.password-store/mine  [recursive, not followed]
(...)

> ls -l /home/kossak/.password-store/mine         10:44:32
lrwxrwxrwx 1 kossak kossak 32 2017-01-19  /home/kossak/.password-store/mine -> /mnt/params/.password-store/mine

> ls -ld /mnt/params/.password-store/mine
drwx------ 2 kossak kossak 4096 2021-05-06  /mnt/params/.password-store/mine

文件夹mine不是递归的,它是到不同文件夹的链接。前一段时间它还可以工作,但现在停止了。

有什么想法如何修复它吗?

我在用着:

  • 通过v1.7.4
  • Linux 曼扎罗

答案1

pass 显然使用treepass find命令。

对我来说,运行底层tree命令可能会带来同样的问题:

$ tree -N -C -l --noreport -P '*test*' --prune --matchdirs --ignore-case /home/user/.password-store
/home/user/.password-store
└── symlink -> /path/to/another/dir  [recursive, not followed]

您还可以看到“递归,未遵循”错误tree源代码中

关于此行为表现的答案tree说“如果在哈希表(用 saveino 和 findino 填充的哈希表)中找到符号链接指向的目录的 inode 号,它将简单地跳过它。”

我还没有找到解决方案,但我的猜测是tree保存和查找索引节点号的代码发生了一些奇怪的事情。

和你一样,我也记得像这样的符号链接曾经在 中工作pass,我不记得它们何时停止工作。最后tree对任何相关的事情进行有意义的改变pass是在2014年,tree那么也许这是一个回归呢?


¹为了找到该tree命令,我在set -x链接行上方添加了tree -N -Cpassword-store.sh

相关内容