最初の答え:GNU方式

最初の答え:GNU方式

共通ファイルを含むディレクトリをあるパーティションから別のパーティションに移動するには?

/mnt/Xハードリンクを介してファイルを共有するディレクトリを含むパーティションをマウントしたとします。これらのディレクトリを別のパーティションに移動して/mnt/Yハードリンクを維持するにはどうすればよいですか?

「ハードリンクでファイルを共有するディレクトリ」の意味をよりよく説明するには、次の例を参照してください。

# let's create three of directories and files
mkdir -p a/{b,c,d}/{x,y,z}
touch a/{b,c,d}/{x,y,z}/f{1,2,3,4,5}
# and copy it with hardlinks
cp -r -l a hardlinks_of_a

具体的には、全体のファイルサイズが10Gで、各ファイルに10個のハードリンクがあるとします。問題は、10Gを使用してターゲットに移動する方法です。 (100Gにコピーしてから重複排除を実行すると言うこともできます。これは私が尋ねるものではありません。)

ベストアンサー1

rsyncにはこれまたは-Hオプション--hard-linksがあり、停止して再起動することができ、最後の実行中または以降に変更されたすべてのファイルを効率的に処理するために再実行できるという一般的なrsync利点があります。

-H, --hard-links
    This tells rsync to look for hard-linked files in
    the source and link together the corresponding
    files on the destination.  Without  this option,
    hard-linked files in the source are treated as
    though they were separate files. [...]

rsyncマニュアルページを読み、-H を検索します。特定の警告の詳細があります。

おすすめ記事