サーバーからローカルコンピュータにファイルを移動する(コピーではありません)

サーバーからローカルコンピュータにファイルを移動する(コピーではありません)

ローカルコンピュータに移動(コピーしない)したいファイルはLinuxサーバーにあります。ところで、スタックオーバーフローでコマンドを読んだ後、以下のようにしましたが、ファイルを移動せずにコピーするだけです。

scp -r [email protected]:/home/obs/folder/test.txt       /home/yuan/folder/

どんな助けでも大変感謝します。

答え1

「移動する」デフォルトでは、ソースファイルをコピーして削除します。

欲しいなら「移動する」Web上のファイルはこれを行う必要があります。ネットワーク接続が失敗した場合は、データを失うことなくコピーを再試行できるため、常により良いオプションです(ファイルが誤って送信されたが後で削除された場合)。

ファイルが転送されたら、サーバーからソースファイルを削除する必要があります。たとえば、次のようになります。

ssh [email protected] 'rm /home/obs/folder/test.txt'

ファイルのコピーに例で使用したオプションは、ネットワーク経由で-rファイルディレクトリをコピーすることを意味します。私の考えでは、あなたが欲しいと思います。移動するネットワーク上のすべてのファイル(該当するソースディレクトリ内のすべてのファイルを転送して削除)

コピーまたは「移動する」2 台のコンピュータ間のファイルの場合は、次を使用することをお勧めします。rsync。新しいファイルと変更されたファイルのみを転送し、ターゲットにすでに存在する同じファイルはスキップします。転送後にソースファイルを一度に削除するオプションがあり、転送時に期待できる動作を模倣する必要があります。「移動する」あるシステムから別のシステムへのファイル:

rsync -aPEmivvz --remove-source-files [email protected]:/home/obs/folder /home/yuan

ファイルの場合は、次のものを使用できます。

rsync -aPEmivvz --remove-source-files [email protected]:/home/obs/folder/file.txt /home/yuan/folder/

--remove-source-filesファイルが転送された後にファイルを削除するには、このオプションを使用します。

答え2

rsync選択肢があります--remove-source-files。同期されたディレクトリ以外のすべてのファイルを削除します。

これはうまくいくかもしれません:

rsync -avz --remove-source-files [email protected]:/home/obs/folder/test.txt /home/yuan/folder/

rsyncは、ソースコンピュータとターゲットコンピュータの両方にインストールする必要があります。

実行する前に実行して動作して--dry-runいることを確認してください。

rsyncoverの利点scpは、ファイル権限、所有権、シンボリックリンクをコピーし、圧縮を使用して遅い接続で転送を高速化し、削除する前に転送が成功したことを確認するためにハッシュを実行することです。

私は主にrsyncバックアップにこの機能を使用し、最後の同期以降に変更されたファイルのみを転送するため、多くの時間と帯域幅が節約されます。

答え3

scpサーバーから何も削除されません。rm成功したら、次のことを実行できます。scp

scp -r [email protected]:/home/obs/folder/test.txt /home/yuan/folder/ \
  && ssh [email protected] 'rm /home/obs/folder/test.txt'

答え4

スプーンはありません。

「move」という言葉は、英語で「動き」を意味します。コンピュータではそうではありません。 mv コマンドは、物理的オブジェクトに対する人間の固定を単に改善するために作成されました。

名前をもう少し適切に変更してください。これが rename と mv を入れ替えて使用できる理由です。同じファイルシステムのあるディレクトリから別のディレクトリにファイルを移動すると、新しいパスを含む新しいフルネームでファイルの「名前が変更」されます。

ファイルを紙に書いた簡単な2列縦のリストとして考えてください。パスは左側にあり、ファイルの内容は右側にあります。

「移動」は左の列を消去し、新しい値を書き込みます。ファイルの内容はどこにも「移動」しません。ファイルシステムは、これらのページを持つバインダーです。

あるファイルシステムまたは別のファイルシステムからファイルを移動したいと思う場合(あるコンピュータから別のコンピュータに含める)あなたはしません。あなたがすることは、それをある場所から別の場所にコピーし、最初のものを「削除」することです。 (もちろん実際に削除されるわけではありません。忘れるそれ。 )

移動されたのはファイルではありません。 まさにあなたです。

関連情報