次のことができるコマンドまたはコマンドラインを探しています。ファイルリストのインポートサブツリー(パイプなどを介して)とコピー/新しい目的地に移動、しかしソースディレクトリ構造の再作成。
- タイムスタンプ、xattrs、およびハードリンクを含むすべての関連ファイル属性を保存する必要があります。
- 新しく再作成されたディレクトリは、タイムスタンプ(使用
touch
など)も「保存」する必要があります。
私の特定のシナリオでは、を使用してfdupes
2つのソースツリーと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
ソースツリーから仮説をコピーまたは移動します。
(また、ソースツリーに残っている空のディレクトリを整理する必要はありません。)