SCPの使用に関するヒント-ファイルを再帰的に除外する
Scp Usage Tips Recursively Exclude Files
前書き | Q:*。cファイルを含むすべてのフォルダーをhostAという名前のローカルノートブックからhostBにコピーする必要があります。次のscpコマンドを使用しましたが、特定のファイル(* .outなど)を除外する方法がわかりません:$ scp -r〜 / projects / user @ hostB:/ home / delta / projects /。でscpコマンドを伝える方法 Linux / Unixコマンドラインから特定のファイルまたはディレクトリを除外しますか? 。 |
人々はscpコマンドを使用して、ネットワークホスト間でファイルを安全にコピーできます。データ送信と認証にsshを使用します。一般的な構文は次のとおりです。
scp file1 root@xxxxx:/path/to/dest/ scp -r /path/to/source/ root@xxxxx:/path/to/dest/scp除外ファイル
scpコマンドを使用するときに、ファイルをフィルタリングまたは除外できるとは思いません。ただし、ファイルを除外し、sshを使用して安全にコピーするための適切な解決策があります。このページでは、scpを使用してディレクトリを再帰的にコピーするときにファイルをフィルタリングまたは除外する方法について説明します。
rsyncコマンドを使用してファイルを除外する方法構文は次のとおりです。
rsync av -e ssh --exclude='*.out' /path/to/source/ root@xxxxx:/path/to/dest/
ここに:
- -a:ディレクトリに戻ります。つまり、すべてのファイルとサブディレクトリをコピーします。また、アーカイブモードと他のすべてのオプション(-rlptgoDと同等)をオンにします
- -v:詳細出力
- -e ssh:sshをリモートシェルとして使用して、すべてが暗号化されるようにします
- -除外= '*。 out ':*。outや* .cなどのパターンに一致するファイルを除外します。
この例では、すべてのファイルが〜/ virt /ディレクトリから再帰的にコピーされますが、すべての* .newファイルは除外されます。
$ rsync -av -e ssh --exclude='*.new' ~/virt/ root@xxxxx centos 7:/tmp
サンプル出力:
Scpはファイルを除外しますが、rsyncexcludeコマンドを使用します
リモートサーバーでrsyncが見つからない場合、rsyncコマンドは失敗します。この場合、現在のディレクトリでbashシェルパターンマッチングを使用する次のscpコマンドを試してください(-rオプションと一緒に使用することはできません)。
$ ls
サンプル出力:
centos71.log centos71.qcow2 centos71.qcow2.new centos71.v2.qcow2.new meta-data user-data
.newを除く現在のディレクトリ内のすべてをコピーします。
$ shopt -s extglob $ scp !(*.new) root@xxxxx:/tmp/
サンプル出力:
centos71.log 100 % 4262 1.3MB/s 00:00 centos71.qcow2 100 % 836MB 32.7MB/s 00: 25 meta-data 100 % 47 18.5KB/s 00:00 user-data 100 % 1543 569.7KB/s 00:00
詳細については、次のマニュアルページを参照してください。
$ rsync -av -e ssh --exclude='*.new' ~/virt/ root@xxxxx:/tmp
経由: https://www.cyberciti.biz/faq/scp-exclude-files-when-using-command-recursively-on-unix-linux/
の: Vivek Gite 翻訳者: geekpi 校正: wxy
この記事はで構成されています LCTT &iexclOriginalコンパイル、 Linuxチャイナ 名誉の打ち上げ
元のテキストは次のとおりです。 http://www.linuxprobe.com/scp-recursion.html