GNU/Linux >> Linux の 問題 >  >> Linux

rsync とシンボリック リンク

<オール>
  • 「シンボリックリンクをシンボリックリンクとしてコピーする」とは、まさにその意味です。rsync がソースディレクトリにシンボリックリンクを見つけた場合、コピー先に同一のシンボリックリンクを作成します。 それ以上はありません。

    (マニュアル ページの数行下、異なる オプション、--copy-links は、望ましくないと説明した逆の動作 (常にデータをコピーする) を説明しています。)

    「シンボリックリンク」セクションも参照してください:

    <ブロック引用>

    --links の場合 が指定されている場合、宛先で同じターゲットを使用してシンボリック リンクが再作成されます。

  • --links を誤解しているため、必要な動作ではありません したがって、間違った動作を要求します (回答 #1 を参照)。

  • デフォルトでは、コピー先を正確にコピーします。

    つまり、リンクが絶対パスを指している場合 (例:/home/me/projects )、同じパスを指し続けます。 壊れない 、バックアップ内のファイルではなく、ホームディレクトリ内のファイルを指し続けます.

    一方、リンクが相対パスを指している場合 (例:../../projects )、 同じパスを指し続けますが、シンボリック リンクの場所に相対的であるため、バックアップ内のシンボリック リンクもバックアップ内のファイルを指します。

    残念ながら、絶対シンボリックリンクを新しいベースに変換するオプションはないようです (それらを完全に切断するオプションのみ)。問題を回避するには、既存のシンボリック リンクを相対リンクに変更する必要があります (これは一般的に、$HOME 内のリンクでは良い考えです)。


  • @grawity には素晴らしい回答がありますが、ドキュメントからの関連情報のスクリーンショットを次に示します。 -l の正確な文言は次のとおりです。 と -L たとえば、最も関連性が高いと思われるオプション:

    ソース:https://linux.die.net/man/1/rsync、または man rsync Linux のマニュアル ページ。

    -a にも注意してください。 (--archive ) オプションには -l も含まれます -l を使用するのが本当に好きなので、その中のオプションは素晴らしいです ソースからのシンボリックリンクを宛先のシンボリックリンクとして保持するオプション。マニュアルページから:

    -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
    

    注、私のお気に入りの rsync について コピー、ミラーリング、進行状況の表示などのコマンドと指示...

    ...予行演習を行い、stderr と stdout を (別の) ファイルに記録し、統計情報を表示し、インクルード パス ファイルを使用します。 および除外ファイル など、「2. rsync コマンドライン ツール (Linux、Cygwin を使用した Windows)」というタイトルの 2 番目のセクションの下にある私の完全な回答を参照してください。 ":https://superuser.com/a/1464264/425838


    Linux
    1. Git とハードリンク

    2. シンボリック リンクでの cd/bash の動作

    3. スラッシュと rsync コマンド

    1. Linuxでハードリンクとシンボリックリンクを作成する方法

    2. シンボリックリンクとハードリンクの違いは?

    3. カーネルのアンインストール後に /vmlinuz および /initrd.img のシンボリック リンクが破損する

    1. 高速および低速のシンボリックリンク?

    2. ディレクトリを指すシンボリック リンクがあるかどうかを確認する方法はありますか?

    3. シンボリック リンクの環境変数