我想要做的是呈现一个目录,其内容来自文件系统上的一系列其他目录。它就像一个软链接,一次只能链接到多个目录,而不是一个。
该目录可能被认为是只读的 - 或者,如果对文件进行了更新,如果这些更新发生在源文件中,那就太好了(即目录是进入文件上许多位置的“窗口”)系统)
如果在此“伪”目录中创建新文件,则应将其放入某个默认位置,或者完全拒绝。
Windows(名为库)和 OSX(智能文件夹)中也存在类似的功能 - Unix 上有等效的功能吗?
答案1
它不作为标准 Unix 或图形 Linux 界面的一部分提供。
Linux系统管理员可以使用overlayfs。实际上,最重要的用途之一是允许修改正在运行的 LiveCD 系统,例如安装额外的软件包。
FUSE 中也有类似的功能,无需 root 权限即可在 Linux 上使用。 FUSE 会有额外的限制,但它可以很好地适用于与您提到的功能相同的情况。 unionfs-fuse 似乎在 ubuntu 中可用。 (“联合安装”是该概念的较旧术语)。
答案2
你的问题已被问到这里。
我修改了 paxdiablo 先生的脚本来满足您的问题:
#!/bin/bash
while true; do
mkdir nu
for i in dir1/* dir2/* dir3/*; do
ln -s $i nu/$(basename $i)
done
mv smartdir ole
mv nu smartdir
rm -rf ole
done
因此dir1
, dir2
,dir3
是您想要符号链接到的目录,并且smartdir
是“智能文件夹”。只需将其作为启动运行即可。请注意, 中不应该有文件或文件夹dir{1, 2, 3}
,否则你会被搞砸(好吧,所以你可以调用脚本愚蠢的文件夹制造商代替)。