1. ホーム
  2. file

[解決済み] scpでdirを再帰的にコピーするときにファイルをフィルタリングする方法は?

2022-11-11 05:36:42

質問

サーバーにあるすべての .class ファイルを、すべてのディレクトリを予約した状態でローカルにコピーする必要があります。 server:/usr/some/unknown/number/of/sub/folders/me.class/usr/project/backup/some/unknown/number/of/sub/folders/me.class 問題は、.svn-base ファイルなど、不要なファイルがたくさんあることです。 scp .class ファイルだけにするために、どのようにフィルタリングできますか?

どのように解決するのですか?

私はおそらく、次のようなものを使用することをお勧めします。 rsync を使うことをお勧めします。 includeexclude のフラグがあります。

rsync -rav -e ssh --include '*/' --include='*.class' --exclude='*' \
server:/usr/some/unknown/number/of/sub/folders/ \ 
/usr/project/backup/some/unknown/number/of/sub/folders/

その他、便利なフラグをいくつか紹介します。

  • -r 再帰的な場合
  • -a アーカイブ用 (ほとんどすべてのファイル)
  • -v 冗長出力用
  • -e デフォルトの代わりに ssh を指定する (実際には ssh であるべき)