1つの特定のファイルのみを含むすべてのディレクトリをインポートする

1つの特定のファイルのみを含むすべてのディレクトリをインポートする

リモートサーバーには一連のディレクトリ(D1、D2、D3...)があり、各ディレクトリには同じ名前(f1、f2、f3)を持つ複数のファイルが含まれています。


私はD1:f1、f2、f3
D2:f1、f2、f3
D3:f1、f2、f3 on theリモートサーバーを持っています


私のローカルコンピュータで
D1:f1
D2:f1
D3:f1を使いたいです


f1のみを含むすべてのディレクトリ(D1 / f1、D2 / f1、D3 / f1、...)をインポートする必要があります。 SFTPが正規表現をサポートしていないことを知っていますが、これを行う他の方法はありますか? SFTPでこれができない場合は、scpまたはrsyncを使用してこれを行う方法はありますか?

答え1

このrsyncコマンドでできること

rsync --dry-run -avR remoteHost:'/path/to/./D*/f1' /path/to/target

同様に、必要に応じてsshそのremoteHostコンポーネントを使用することもできますremoteUser@remoteHost。ソースパスの点は、ディレクトリが/./コピーに含まれる場所を示します。現在のディレクトリに書き込もうとしている場合が/path/to/targetあります。.

はい

mkdir -p /tmp/src/D{1,2,3} /tmp/dst
touch /tmp/src/D{1,2,3}/f{1,2,3}

rsync -avR localhost:'/tmp/src/./D*/f1' /tmp/dst/
ls -R /tmp/dst

関連情報