Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> LinuxシステムFAQ >> Linuxシステム間でファイルをコピーするためのテクニックの要約

Linuxシステム間でファイルをコピーするためのテクニックの要約

  
日常業務において、リモートまたはローカルのサーバーから頻繁にファイルをコピー/移動する必要があります。もっと散在しているファイルに遭遇すると、遅くなりますので、もっと早い方法があるのでしょうか。収集、ソート、および検証を行った後、おそらく次のようになります。まず最初に、ローカルでもリモートでも、より多くのファイルを移動またはコピーする必要があり、大きすぎない場合、cpコマンドとmvコマンドは効率が悪く、最初にコピー/移動するコンテンツをパッケージ化/圧縮します。それからコピー/移動し、最後に解凍/解凍します。さらに、これは重要なスキルでもあります。つまり、tarのパッケージ化/圧縮後にコピー、解凍、解凍する必要はありません。また、反対側をパイプラインでパック/圧縮することでパケットの解凍/解凍を実行できます。たとえば、tarコマンドとncコマンドを組み合わせて、2つのマシン間でファイルとディレクトリをすばやく転送できます。B machine:nc -l 5555 | Tar -C /tmp /test /-xf -Aマシン:tar cf - /tmp /test /| Nc B'IP 5555上記の手順では、A machine /tmp /test /の内容をB machineの対応するディレクトリにコピーします。ここで、tar cf - /tmp /test /|を使用します。 Nc B'IP 5555は、対応するIPアドレスとポート5555でBマシンにパイプとncコマンドでコンテンツ側をパックします。 Tar -C /tmp /test /-xf - マシンの555ポートをリッスンし、受信したコンテンツを指定されたディレクトリに解凍します(-Cパラメータはターゲットディレクトリを指定します)さらに、tarはscpおよびsshコマンドと組み合わせることができます。 Aマシンがパッケージ化されたら、それをBマシンにコピーしてtar -cf - /tmp /test | unpackを解凍します。  Ssh B'IP" cd /tmp; tar -xf - "をマシンAにパッケージ化し、パッケージ化されたファイルをマシンBにコピーしました。  Ssh B'IP" cd /tmp; cat - > test.tar" tar -cf - /tmp /test |  Scp - B'USER @ B'IP:/tmpはマシンAのパッケージファイルをマシンBにコピーし、zcat test.tarを解凍します。  Ssh B'IP" cd /tmp; tar -xf - "はローカルで直接使用することもできます。cd /tmp /test1tar -cf -  (cd /tmp /test2; tar -xvpf - )しかし、cpを直接使用する方が速いという結論に達する人もいますその他のトリック:単一のファイルをコピーすることに加えてディレクトリをコピーすること、時にfile /ディレクトリの属性も一緒にすることコピーします。 cpコマンドで-Rパラメータを使用してディレクトリを再帰的にコピーし、-pパラメータを使用してファイル保持属性をコピーできます(デフォルトはmode、ownership、timestampsで、 - context [= ATTR_LIST]で予約する属性を指定することもできます)。 Links(xattr、all)は、接続を保持するためにファイルをコピーするために-dパラメーターを使用します。 (-dR --preserve = allを使用するのと同じです。)多数の小さいファイルをコピーする進行状況を確認したい場合は、単純な小さなスクリプトを作成してください。* docp $ iターゲットディレクトリのcd /tmp /testfor iエコー$ iは大丈夫です....

完了

最後に、トリッキーではないトリックを追加します。タスクを完了するためにツールを使用する前に、現在使用中のツールが最も適切なツールかどうかを考えますか。もっと良いツールや方法はありますか?ツールが現在のタスクに本当に適している場合、ツールを使用するときに生産性を向上させるための特別な手法はありますか? (通常、ヘルプファイルを見るのは驚きです。)

Copyright © Windowsの知識 All Rights Reserved