scp -r…ただし、指定したサブディレクトリを除外(除外)します


29

ディレクトリ構造は次のとおりです。

/a/
/a/b/
/a/c/

/ a / c /サブディレクトリを除くすべてをコピーしたい。

scp -rp myserver:/a .      # this will copy everything

Q:scpコマンドで除外するディレクトリを指定するにはどうすればよいですか?


3
最初の動機は、サブディレクトリ「/ a / c /」が非常に大きい(ギガバイト)ため、それを残しておくとコピーが数分から数秒に削減されることです。
russian_spy

回答:



5

これは正しい方法だと思うので、あなたはまだSSHを使用しています、scpでそれを行う方法は見つかりませんでしたが、rsh over sshを使用すると解決するかもしれません。

rsync -e 'ssh -ax' -av --exclude /a/c myserver:/a .

-nスイッチを使用すると、プロセスのドライランが作成されます。

 rsync -e 'ssh -ax' -av --exclude /a/c -n myserver:/a .

また試してください-rz-e "ssh -i private.pem" -rz 'users@server:/full/path/'
mbrownnyc

1

以下の例のように、拡張グロビングを使用できます。

#Enable extglob
shopt -s extglob

cp -rv !(./excludeme/*.jpg) /var/destination

0

完璧な方法ではありませんが、除外するサブディレクトリを読み取り専用として設定してください。chmod -R 444 /a/cトリックを行う必要があります。そのディレクトリを上書きしようとすると、「permission denied」エラーが表示されます。

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