scp-実行中にファイルをスキップする


8

scpを実行してリモートサーバーからフォルダーをコピーしています。-rlを使用して実行しているので、ファイルがコピーされているのがわかります。現在のファイルをスキップすることはできますか?

回答:


11

いいえ、できません。しかしscprsync代わりに停止して使用できます。部分的なコピーの残りの差分のみがコピーされ、転送したくないファイルやディレクトリを除外できます。

rsync -avP -e ssh --exclude=somefile --exclude=somedir ./localdir/ user@server:remotedir/

2
はい、これは便利ですが、残念ながら質問された質問には答えられません。
Emmaly Wilson、

8
それは質問に完全に答えます。質問は、何かが可能かどうかを尋ね、この答えは「いいえ」と答えます。次に、役立つ、トピックに関する代替案を提供します。
クリストファーシュロバ2016

1

いいえ、-rまたは1つのscpコマンド内で複数のファイル転送を実行するその他の構文は使用できません。

とは言ってscpも、UNIXのパラダイムに従っています。興味深い方法でチェーン化できるシンプルで正確な機能を提供するプログラムを作成します。これは、ファイルごとに1つずつ、コマンドの個々の呼び出しを対話的に実行するループを作成できることを意味します。その後、実行されている個々のコマンドから抜け出すことができます。(Ctrl-C)

このコードは読者への課題として残されていますが、対話型シェル内でこのループを実行する必要性を強調する必要があります。非対話型シェルから抜け出すと、ジョブ全体が終了します。


0

はい、できます!

リモートディレクトリをリストして、各ファイルを個別にコピーしましょう。次に、コピーしないファイルごとにctrl-cを押します。

OLD_IFS="$IFS"
IFS=$'\n'
for file in `ssh user@host ls /remote/directory/`
  do echo user@host:/remote/directory/$file /local/directory/
done;
IFS="$OLD_IFS"

OLD_IFSは、スペースを含むファイルを処理するためのものです。


これはどこに置くの?どのように呼びますか?
StatsSorceress
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.