有没有办法制作多部分或虚拟文件?

有没有办法制作多部分或虚拟文件?

有没有一种方法可以创建引用目录内容的符号文件?

例如,调用:

cat all_keys

将给出与以下相同的输出:

cat keys/key1+keys/key2+etc...

我尝试创建目录的符号链接,尝试各种标志来尝试获取数据,甚至尝试创建运行命令的符号链接:

cat keys/*

类似于逻辑卷可以跨越多个物理分区的方式,我想知道是否可以创建一个跨越任意且灵活的数据长度的文件。

对于上下文:我对用于 sshauthorized_keys 的平面文件系统感到非常沮丧。

我知道我可以使用 SED 来删除关键数据,但这看起来很混乱。我确信除了这个范围之外还有其他用途。

提前致谢。

编辑:

最后,我只是使用 SED 来在关键块之前进行删除和注释以识别它。

从 CPU 角度来看,它比我想要的要贵一些,但可以避免重复文件夹和文件中的所有关键数据或尝试创建熔断目录。

答案1

据我所知,执行此操作的唯一方法是编写一个新的文件系统,可能在用户级别使用 FUSE 或类似的文件系统。这并不难处理(我已经用大约 200 行 Python 完成了),但这是一项相当繁琐的细节工作,而且它可能不是最适合这个应用程序的(特别是,您需要安装new FS on .ssh,这意味着您还必须模拟真实的文件系统或传递请求来处理需要存在的其他平面文件)。

另一种选择可能是编写一个脚本,从源目录生成平面文件(可能像 一样简单cat dir/* >file),然后在 cronjob 上运行它或由 inotify 或类似工具触发。一个简单的脚本可能是:

while inotifywait ~/ssh_source_dir; do
    cat ~/ssh_source_dir/* >~/.ssh/authorized_keys
done

(这肯定需要调整以获得精确的行为和可靠性,但它只是一个原型。)

答案2

您可以使用split将像您的文件这样的大文件allkeys切成碎片。

阅读man split选项。

相关内容