FTP를 사용하여 디렉토리에 있는 수백 개의 파일을 다운로드하려고 합니다. FTP를 사용하여 특정 파일만 다운로드할 수 있는 방법이 있나요?
이상적으로는 정규식을 사용하여 특정 파일을 일치시키고 싶습니다. 불행하게도 디렉토리가 너무 커서 전체 디렉토리를 다운로드한 다음 로컬에서 find 또는 grep을 사용하여 일부 파일을 조작할 수 없습니다. Unix에서 하고 싶은 일을 쉽게 수행할 수 있는 방법이 있나요?
그렇지 않다면 Perl이나 Python으로 스크립트를 작성할 계획입니다. 도움을 주셔서 미리 감사드립니다.
답변1
다음을 확인하여 원격 시스템에서 쉘 와일드카드를 사용할 수 있습니다.glob
활성화된 후 실행mget
.
바라보다http://www.proftpd.org/docs/howto/Globbing.html더 많은 정보를 알고 싶습니다.
저는 이것이 FTP가 달성할 수 있는 한계라고 믿습니다. SSH 액세스 권한을 얻을 수 있으면 서버에서 grep 및 파일 수정을 포함하여 더 많은 작업을 수행할 수 있습니다.
답변2
대용량 파일 저장소에는 일반적으로 어딘가에 index.txt 파일이 있습니다. 다운로드하면 폴더 내의 모든 파일 목록이 포함됩니다. 적어도 패키지 목록을 빠르게 찾는 데는 유용합니다.
답변3
여러 옵션 중 하나를 사용하여 FTP 서버를 로컬 디렉터리로 마운트합니다.퓨즈-기반파일 시스템FTP의 경우 선호하는 도구(예: cp
플러스 쉘 와일드카드 또는 rsync
)를 사용하여 검색하려는 파일을 일치시키고 복사합니다. 예를 들어:
mkdir example-somedir
curlftpfs ftp://ftp.example.com/somedir example-somedir
cd example-somedir
rsync -a --exclude 'boring.ext' --include='*.ext' --exclude='*' . /path/to/local/copy
fusermount -u example-somedir
답변4
GUI 솔루션이 필요하고 Konqueror 브라우저가 있는 경우 ftp://
FTP 주소를 입력하고 디렉토리 구조를 탐색할 수 있습니다.
그러나 명령줄 솔루션이 필요할 수도 있는 것 같습니다.