35

答えはもうわかっている気がしますが、チェックしてみようと思いました。

私はいくつかの異なるフォルダを持っています:

images_a/
images_b/
images_c/

この新しいディレクトリにこれらすべてのディレクトリの内容が含まれるように、ある種のシンボリックリンクを作成できますか?つまり、この新しい " "には、、および?images_allのすべてのファイルが含まれます。images_aimages_bimages_c

4

3 に答える 3

14

いいえ。すべての個々のファイルをシンボリックにリンクする必要があります。

定期的に実行するジョブを作成して、の既存のシンボリックリンクをすべて削除し、他の3つのディレクトリからすべてのファイルのリンクを再作成することができimages_allますが、これは少し厄介です。次のようになります。

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

このジョブの実行中に、ファイルが一時的に消えたように見える場合があることに注意してください。

また、1つのファイル名が2つ以上のディレクトリに存在する場合にも注意する必要があります。


しばらくしてこの質問に戻ってきましたが、ファイルが利用できない時間を最小限に抑えることができることも私には思い浮かびます。

それらを別のディレクトリにリンクする場合は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

私はそれをテストしていないので、それを実装する人は誰でも適合性などを確認する必要があります。

于 2009-01-08T05:11:27.363 に答える
9

unionfsのようなunioningファイルシステムを試すことができます!

http://www.filesystems.org/project-unionfs.html

http://aufs.sourceforge.net/

于 2009-01-08T05:19:50.823 に答える