2017-10-24 4 views
0

私は、フォルダ上のすべてのコンテンツをダウンロードしますシェルスクリプトのパターントラフSFTPと一致するファイルをダウンロードする方法はありますか?

sftp -o IdentityFile=key <user>@<server><<END 
    get -r folder 
    exit 
END 

使用してLinuxサーバ上で複数のファイルトラフSFTPをダウンロードしようとしています。 findgrepは無効なコマンドであり、forループであるようです。

文字列を含む名前のファイルをダウンロードする必要があります。

test_0.txt

test_1.txt

が、無file.txtを

+0

[SCP](https://linux.die.net/man/1/scp)かもしれない-rあなたのニーズに合ってください – happymacarts

+1

@happymacartsは同じことをしませんか?フォルダ内のすべてのファイルを取得していますか? – mrOak

答えて

0

-rスイッチが本当に必要ですか?実際にはfolderにサブディレクトリがありますか?あなたはそれを言及していない。

何のサブディレクトリが存在しない場合は、ファイルマスクとシンプルgetを使用することができます。

cd folder 
get *test* 
+0

サブディレクトリはありませんが、-rスイッチで動作するかどうかは疑問です – mrOak

1

あなたはsftpを使用する必要がありますか? sshを操作するrsyncのようなツールには、柔軟なインクルード/除外オプションがあります。たとえば:

rsync -a <user>@<server>:folder/ folder/ \ 
    --include='test_*.txt' --exclude='*.txt' 

これはリモートシステムにインストールされてrsyncが必要ですが、それは、これらの日は非常に一般的です。これは、リモートからすべてのファイルをアップタール

ssh <user>@<server> tar -cf- folder/ | tar -xvf- --wildcards '*/test_*.txt' 

が、その後のみ受信側のターゲットパターンに一致するファイルを抽出します。rsyncが利用できない場合、あなたはtarを使用して、同様の何かをすることができます。

関連する問題