2009-01-08 126 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

相關問題