lftp経由で特定のフォルダをコピーする

lftp経由で特定のフォルダをコピーする

lftpログインを使用してサーバーからデータをコピーしたいです。これはすべてのデータをコピーするコマンドです。

lftp -u uid,pwd -e 'mirror -c /home/dcr96/TCGA' sftp://[email protected]

これにより、sftpのデータがローカルディレクトリにコピーされます。ところで、リストの特定のフォルダだけをコピーしたいと思います。どうすればいいですか?

答え1

次のように、複数のミラーコマンドを簡単に使用できます。

lftp -u uid,pwd \
  -e 'mirror -c /home/dcr96/TCGA/dir1; mirror -c /home/dcr96/TCGA/dir2; exit;' \
  sftp://[email protected]

したがって、リストからこれらのコマンドラインを生成するには、いくつかのシェルコードしか必要ありません。

このようなlftpスクリプトを作成することもできます。これは、実行前にチェックしてデバッグするのが簡単になる可能性があります。

#!/usr/bin/lftp -f
open -u uid,pwd serapeum2.qib.pbtech
cd /home/dcr96/TCGA

# auto-generated from the list
mirror -c dir1
mirror -c dir2
# ...

exit

mirror コマンドはローカルの宛先ディレクトリを受け入れます。パスが長い場合、フルパスを維持するには、次のものが必要です。

mirror -c path/to/dir1 path/to/dir1

関連情報