2017-12-07 15 views
0

まず最初に、既に存在する質問を重複していたら謝りたいが、これをやめることはそれほど重要だ。そこ/varディレクトリ内のファイルのtxt 500のように、すでにあると私はから私のすべてのファイルを移動したいと思いLinux - ファイルを上書きして移動元から移動先に移動

先として/var - ソース として/tmp/tmpに - :

は、私は私のLinuxサーバ上の2つのディレクトリを持っています/tmpディレクトリ(約200ファイル)から/varディレクトリに移動し、同じ名前で既に存在するものを置き換え、/tmpにないものには触れません。

実践例: /varファイル:A.TXT、B.TXT、c.txt、 /tmpファイルd.txt:A.TXT、B.TXT 結果:/varファイル:A.TXT(/tmpから) 、b.txt(/tmp)、c.txt、d.txt

mvが正しい方法であるかどうかわからないので、事前におねがいします! :)これはrsync

を介して実装することができる

答えて

2

詳細についてはrsync manual参照します。あなたのケースでは

Local: rsync [OPTION...] SRC... [DEST] 
Access via remote shell: 
    Pull: rsync [OPTION...] [[email protected]]HOST:SRC... [DEST] 
    Push: rsync [OPTION...] SRC... [[email protected]]HOST:DEST 
Access via rsync daemon: 
    Pull: rsync [OPTION...] [[email protected]]HOST::SRC... [DEST] 
     rsync [OPTION...] rsync://[[email protected]]HOST[:PORT]/SRC... [DEST] 
    Push: rsync [OPTION...] SRC... [[email protected]]HOST::DEST 
     rsync [OPTION...] SRC... rsync://[[email protected]]HOST[:PORT]/DEST 

rsync -avzh /tmp/ /var/ 

あなたは

rsync -avzh --dry-run /tmp/ /var/ 

-a, --archive    archive mode; 
-v, --verbose    increase verbosity 
-z, --compress    compress file data during the transfer 
-h, --human-readable  output numbers in a human-readable format 

に詳細な解説

-vを、それをテストしたい場合は、このオプションは、量を増加させ--verboseあなたが転送中に与えられた情報のデフォルトでは、rsyncはサイレントモードで動作します。単一の -vは、どのファイルが転送されているかについての情報と、最後に簡単な要約を提供します。 2つの-vオプションは、どのファイルがスキップされているかについての情報、最後に の情報を表示します。 rsyncをデバッグする場合、2つ以上の-vオプションを使用するのは です。転送される ファイルの名前は、デフォルトの--out-formatを lq%n%Lrqの形式で使用して行われます。ファイルの名前だけを示し、項目が の場合、それは指摘する。単一のvレベルの冗長性では、この には、ファイルの属性が変更されるタイミングは記述されていません。 に、変更された属性のリスト(-itemize-changes またはlout%の設定にlq%irqを追加する)を入力すると、変更されたすべての項目が出力されます( クライアント上)。いずれにしても。 詳細については、 - out-formatオプションを参照してください。

-a、--archiveこれは-rlptgoDと同等です。あなたが再帰を望んでおり、ほぼすべてを保存したいという素早い方法です( -Hは顕著な省略です)。上記の同等の唯一の例外は--files-fromが指定されている場合です。この場合、-rは ではありません。 の多重リンクファイルの検索が高価であるため、-aはハードリンクを保持しないことに注意してください。個別に-Hを指定する必要があります。 --no-optionオプション名の前にlqno-rqを付けて、1つ以上の暗黙のオプションをオフにすることができます。すべてのオプションに接頭辞として lqno-rqを付けることはできません:他のオプション(例えば--no-D、 --no-perms)によって暗示されるオプション、または様々な状況で異なるデフォルトを持つオプション(例えば--no-whole -file、--no-blocking-io、--no-dirs)を指定します。 lqno-rq接頭辞の後に短いオプション名または長いオプション名を指定することができます(たとえば、 --no-Rは--no-relativeと同じです)。たとえば、-a(--archive)を使用したいが、 -o(--owner)を使用しない場合は、-aを-rlptgDに変換する代わりに、-a --no-o(または-a --no-owner)。オプションの順序は重要です:--no-r -aを指定した場合、 -rオプションは-a --no-rの反対にオンになります。 --files-fromオプションの副作用は、 ポジションではなく、いくつかのオプションのデフォルト状態に影響し、 は-aの意味をわずかに変更します( の--files-fromオプションを参照してください)詳細)。

-z、--compressこのオプションを指定すると、rsyncは送信先のマシンに送信されるファイルデータを圧縮します。これにより、遅い接続では有用なデータが送信されます( )。 明示的に送信されていない一致するデータブロック内の暗黙の 情報を利用するため、圧縮リモートシェルまたは 圧縮トランスポートを使用した場合よりも、このオプションはより良い圧縮率 を実現します。

-h、 - human-readable人間が読める形式の数値を出力します。これにより、K、M、またはGの接尾辞が の大きなユニットを使用して大きな数値が出力されます。このオプションが1回指定された場合、これらの単位はK(1000)、M (1000 * 1000)、およびG(1000 * 1000 * 1000)です。オプションが繰り返される場合、 単位は1000ではなく1024の累乗です。

+0

私はすでにrsyncをテストしており、期待どおりに動作します。ありがとうございました。 とにかく、なぜ私たちは-a、-z、-hオプションを使用するのですか? –

+0

マニュアルからコメントを追加編集しました – SriniV

+0

@MaciejPapurzyńskimanpagesの使い方を学んでください:man rsync – Cyclonecode

0

mvコマンドを使用して2つのディレクトリを簡単にマージすることはできません。

1)cpおよびrmコマンドを使用して目的を達成することができます。 rsyncを使用して

$ cp -r /var /tmp 
$ rm -rf /var 

2)、あなたはそれを達成することができますが、rsyncがactyallyあなたの質問ごとに "移動" しません。むしろある場所から他の場所(通常は遠隔地)にコピーします。

$ rsync -a -v /var /tmp 
$ rm -r /var 

これは目的に役立つと思います。乾杯!

関連する問題