サブフォルダーを持つフォルダーをscpできますか?


31

次のような静的Webサイトのファイルを含むフォルダーがあります。

/site/index.html
/site/css/css.css
/site/js/js.js
/site/images/...

ラップトップ上で何かを更新する場合、ubuntuサーバーにファイルを送信する単一のコマンドが必要です。scpでこれを処理できるのではないかと考えて、もし持っていなければFTPをセットアップしたくありませんか?


回答:


56

このコマンドscp -r source user@target:destは、ソースのすべてのサブディレクトリを調べてコピーします。

ただし、ソースと宛先の両方で同じファイルであっても、同じscpように動作しcp、常にファイルをコピーします。[ 回避策についてはこちらをご覧ください。]

これは静的なWebサイトであるため、ほとんどの場合は更新のみを行い、全体を再作成することはないため、のrsync代わりにssh を使用すると、おそらく動作が速くなることがわかりますscp。おそらく次のようなもの

rsync -av -e ssh source user@target:dest

...始めましょう。LANを介してこれを行う場合、私は個人的に-avW代わりにオプションを使用しますrsync

Rsyncでは、ソース内の削除を複製することもできます。ツリーからファイルを削除する場合rsync、上記のように実行し、フラグ--deleteを含めると、同じファイルが宛先側から削除されます。


9

scpには、必要な処理を行う再帰フラグがあります。 scp -r /base/directory user@server:/to/location

から man scp

-r      Recursively copy entire directories.  Note that scp follows symbolic
          links encountered in the tree traversal.

2

scp -rおよびrsync -rは、他の人が指摘しているように、必要なものを取得する最も信頼できる方法です。

sshfsを使用して、ローカルドライブであるかのように「マウント」することもできます。 sshfs user@host:/site /mnt/mountpoint

(ただし、ローカルで作業し、rsyncを使用して展開することをお勧めします。注意すべきもう1つのツールです。)

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