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