tarが1つの再帰シンボリックリンクを除くすべてのシンボリックリンクに従うようにする方法

tarが1つの再帰シンボリックリンクを除くすべてのシンボリックリンクに従うようにする方法

そのままにする必要がある1つの再帰シンボリックリンクを除いて、すべてのtarシンボリックリンク(withなど)に従うアーカイブを作成する方法(必要に応じて複数のコマンドを使用)がありますか?tar -h

次のディレクトリ構造があります。

project1
  code folder
  dependencies folder
    symlink to project1 folder (recursive!)
    symlink to project2 folder
    symlink to project3 folder
    ... more symlinks, folders, etc
project2
  code folder
project3
  code folder
... more projects

そしてtar project1、同じ外部フォルダをコピーするためにすべてのシンボリックリンクに従うことを望んでいますが、必要なく永久に実行できるようにする再帰シンボリックリンクに従うことはありません。project2project3tar

manページから見ると、これを行うことができるように見えますが、従いたいtar -H各シンボリックリンクを指定する必要があります。これは、他のシンボリックリンク依存関係が追加されるたびに更新する必要がある長いリストなので、メンテナンスが少ないソリューションを探しています。

ここでの迅速な答えは「再帰的なシンボリックリンクを使用しないでください」であり、それが私が今やっていることですが、それは私のプロジェクトに欲しいものであり、この問題に対する解決策を見つけなければそれをすることはできません。

答え1

アーカイブを作成し、そして -h、しかし入らないようにする特定の質問へのリンク--exclude=path/to/naughty/symlink

次に、問題の子供を追加します。tar --append いいえ -h

するいいえ圧縮されたターボールは「後処理」(例:および)と互換性がないため、圧縮オプション(例:またはtar j)を使用してください。ファイルの添付が完了したら、次のことができます。tar z--append--deletegzip tarball.tar

関連情報