ディレクトリ構造の再生成中にオプションのファイルを移動またはコピーする

ディレクトリ構造の再生成中にオプションのファイルを移動またはコピーする

次のことができるコマンドまたはコマンドラインを探しています。ファイルリストのインポートサブツリー(パイプなどを介して)とコピー/新しい目的地に移動、しかしソースディレクトリ構造の再作成

  1. タイムスタンプ、xattrs、およびハードリンクを含むすべての関連ファイル属性を保存する必要があります。
  2. 新しく再作成されたディレクトリは、タイムスタンプ(使用touchなど)も「保存」する必要があります。

私の特定のシナリオでは、を使用してfdupes2つのソースツリーとaの間の重複エントリを見つけ、ディレクトリ構造を維持しながらツリーの重複bエントリを別の場所に移動しようとしています。しかし、単純化のための出力は私が使用したい入力を生成します。 (「rsyncの使用」は私が使用できるソリューションではないことを理解してください。)a
find . -type f

少し複雑なループを書く必要があるようですが、find | xargs / while read line私が見逃した素晴らしいツールがあり、誰かが使用できるより良い解決策があるか、それにrename似た(またはすでに共有できるスクリプトがある)場合がありますか?

ありがとうございます!

入力例:

cat <<THEEND | <program-or-script> /target/directory/
./subtree/with/a/file
./subtree/with/some/other/file
./subtree/with/even/more/files
THEEND

望ましい結果:

$ find /target/directory/ -type f
/target/directory/subtree/with/a/file
/target/directory/subtree/with/some/other/file
/target/directory/subtree/with/even/more/files

そうしなければならないいいえ./subtree/with/an/ignored/fileソースツリーから仮説をコピーまたは移動します。
(また、ソースツリーに残っている空のディレクトリを整理する必要はありません。)

関連情報