2016-12-11 10 views
0

ここで私の髪を引き出してこれを動作させようとしています。詳細とコマンドの例を挙げています。私は内容LIST.TXTという名前のディレクトリのリストを使用してファイルを持っているrsyncは、--files-fromオプションが使用されているときに末尾にスラッシュがないかのように、宛先のソースディレクトリを入れ子にしています。

は、次のようになります。

HYTTCCCXX HYTVNCCXX HYV5TCCXX

私のrsyncコマンドは次のようになります。 rsync -av --recursive --files-from='/tmp/list.txt' /test/apple/ /destination/files/

問題があるときにIコマンドを実行すると、 /test/(これはautofsのトップレベルなので実際には何も含まれていません)と転送されるファイルには/test/apple/の両方が含まれています。私のソースから末尾のスラッシュを残した場合のように、ファイルが宛先に2回書き込まれるようにします。

ので先は次のように、リスト内の両方のディレクトリで終了し、元の別のコピー:だから私はすべての2つのコピーで終わる /destination/files/HYW22CCXX /destination/files/HYTVNCCXX /destination/files/HYV5TCCXX /destination/files/test/apple/HYW22CCXX /destination/files/test/apple/HYW22CCXX /destination/files/test/apple/HYTVNCCXX

--exclude='/test/apple/'または--exclude='/test/*または--exclude='apple/*のような除外のすべての組み合わせを試してみることをお勧めします。しかし、何も動作しません。

アイデア?私はバナナにこれを理解しようとしています。

ありがとうございました!

答えて

0

これは、--files-fromオプションが--relativeを意味するためです。 rsyncのmanページから

引用、--files-fromのセクション:

--relative(-R)オプションを暗黙的に指定され、ファイル内の各項目(使用のために指定されたパス情報を保存--no-relativeまたは--no-Rをオフにしたい場合)。

次のオプションを試してみて、それが助けかどうかを確認: rsync -av --recursive --no-relative --files-from='/tmp/list.txt' /test/apple/ /destination/files/

関連する問題