2009-01-08 138 views
20

我有一种感觉,我已经知道这个答案,但我想我会检查。我可以将多个目录符号链接成一个吗?

我有一些不同的文件夹:

images_a/ 
images_b/ 
images_c/ 

我可以建立某种形式的符号链接,使得这个新目录拥有所有这些目录的内容?这是新的“images_all”将包含所有的文件在images_aimages_bimages_c

回答

11

不需要。您必须以符号方式链接所有单个文件。

可能做的是什么来创建一个作业,以定期运行基本上除去了所有在images_all现有的符号链接,然后重新创建从其他三个目录中的所有文件的链接,但它是一个有点一个杂牌,这样的事情:

rm -f images_all/* 
for i in images_[abc]/* ; do; ln -s $i images_all/$(basename $i) ; done 

需要注意的是,这项工作正在运行时,它可能会出现该文件已暂时消失等过程。

您还需要注意两个或多个目录中存在单个文件名的情况。


经过一段时间后回到这个问题,我也发现你可以最小化文件不可用的时间。

如果您将它们链接到一个不同的目录,然后做相对较快的mv操作,以尽量减少时间。喜欢的东西:

mkdir images_new 
for i in images_[abc]/* ; do 
    ln -s $i images_new/$(basename $i) 
done 

# These next two commands are the minimal-time switchover. 
mv images_all images_old 
mv images_new images_all 

rm -rf images_old 

我还没有测试的,因此任何人实现它必须确认是否适合或以其他方式。

+4

你可以用`lndir`做符号链接。 – 2010-01-27 07:29:43

相关问题