我在 Linux(Red Hat)系统上有三个目录。例如 /usr/local/one、/usr/local/two 和 /usr/local/three。我希望有一种机制,其行为类似于目录,将 one、two 和 three 的内容合并到 /opt/oneTwoThree 中,而无需物理移动它们的文件内容。
IE..
$ find /usr/local/
/usr/local/one
/usr/local/one/aaa
/usr/local/one/bbb
/usr/local/three
/usr/local/three/fff
/usr/local/two
/usr/local/two/ccc
/usr/local/two/ddd
/usr/local/two/eee
$ find /opt/oneTwoThree
/usr/local/oneTwoThree
/usr/local/oneTwoThree/aaa
/usr/local/oneTwoThree/bbb
/usr/local/oneTwoThree/fff
/usr/local/oneTwoThree/ccc
/usr/local/oneTwoThree/ddd
/usr/local/oneTwoThree/eee
答案1
答案2
如果目录内容大部分是静态的,您可以使用符号链接来实现,即将三个目录中的每个文件符号链接到第四个目录。
答案3
对于偶然发现这个老问题的任何人来说,Inotify 可用于监视目录并自动创建链接。
答案4
几年前,我遇到过类似的问题(想将开源内容安装到单独的目录中 - 类似于今天使用的 /opt/* 方案 - 但不必不断更新 $PATH)
对我来说,解决方案是使用 CMU 仓库自动创建和维护 /usr/local/* 层次结构,该层次结构包含使用链接和/或符号链接的所有 /opt 类内容。