LFTP 작업, 찾기 및 -exec 옵션으로 오류가 발생 함


1

다음 lftp 명령에 어떤 문제가 있습니까? 서버에 파일이 있습니다. 경로가없는 ./파일 이름 (예 :) 파일 이름 만 가져 오려고합니다.

lftp -u user,password -e 'find -exec basename {} \; ;bye' ftp.mycompany.com/Courses >/opt/output/downloaded/course_list

다음과 같은 오류가 발생합니다-

cd ok, cwd=/Courses
find: invalid option -- 'e'
Usage: find [-d #] dir

답변:


1

오류는 정확히 어떤 매개 변수 찾기를 시작해야하는지 보여줍니다. 검색해야하는 디렉토리입니다. 실제로, 그것은 거기에 있어야하는 유일한 매개 변수이며 나머지는 모두 당신을위한 것입니다.

반면에, 출력에서 ​​디렉토리를 생략하기 위해 basename을 호출 할 필요는 없습니다. -printf 및 적절한 순서를 사용하여 찾은 파일의 모든 특성을 인쇄 할 수 있습니다. 남자는 도움이 될 것입니다.


FTP 서버입니다. 아마도 다른 찾기 패키지입니다. 찾기 구문을 볼 수있는 곳이 있습니까? 온라인에서 찾은 모든 조합을 시도했습니다. 작동하지 않습니다. 나는 이것을 시도했다- lftp -u user,password -e 'find -d .; ;bye' ftp.mycompany.com/Courses >/opt/output/downloaded/course_list그리고 그것은 말한다find: . - not a number
user2023507

내가 주면 -e 'find .; ;bye' 효과가 있습니다. 그런 다음을 추가했습니다 -e 'find . -exec basename {}\; ;bye'. 그런 다음 모든 공간 분리 토큰을 디렉토리로 사용합니다. -exec 액세스가 거부되었다고 말합니다. 기본 이름 액세스가 거부되었습니다. 등
user2023507

-d #는 아마도 # 레벨의 디렉토리 깊이에서 찾기를 의미 할 것입니다. 여기서 잊어 버릴 수 있습니다. find를 실행하는 가장 간단한 방법은 "find"입니다. 현재 디렉토리의 내용을 나열합니다.
Gombai Sándor

나는 basename 호출을 잊어 버리고 위의 -print를 사용하도록 제안했다. 정확한 -printf "% f \ n"이 되려면 문제가 더 심각 할 것 같습니다. 일반 찾기가 무엇인지 거의 알지 못하는 간단한 찾기가있는 것 같습니다.
곰 바이 산도르

1
이 찾기는 펌웨어에 맞게 작게 잘립니다. 작동하지 않습니다. 그러나 출력 파일 / 파이프의 경로가있는 파일을 나열하고 이름 만 포함하도록 필터링 할 수 있습니다. 그냥 sed / awk one-liner입니다.
곰 바이 산도르
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.