sftp rmdir이 작동하지 않는 이유는 무엇입니까? 아무 문제없이 접근 할 수있다.

개인 서버 공간에서 많은 파일과 폴더가있는 디렉토리를 제거하려고합니다. SFTP를 통해 로그온하고 있습니다. 나는 전체 디렉토리에 아무 문제없이 접근 할 수있다. rm을 사용하여 개별 파일을 삭제할 수도 있습니다. 그러나 이것은 영원히 나를 데려 갈 것입니다. 따라서 제거하려는 가장 높은 폴더에서 rmdir을하고 싶습니다. 하지만 이렇게하면

디렉토리를 제거 할 수 없습니다 : 실패

내가 뭘 잘못하고 있는지에 대한 생각?

대단히 감사합니다, 샘



답변

내 경험상 rmdir은 빈 디렉토리에서 작업하는 것을 선호합니다. 디렉토리를 삭제하려고하면 다음 foo을 수행하십시오.

$rm foo/*
$rmdir foo


답변

사용중인 SFTP 클라이언트를 지정하지 않았습니다. 그래서 OpenSSH SFTP ( sftp)를 가정합니다 .

rmdirOpenSSH SFTP 클라이언트의 명령 은 SSH_FXP_RMDIRSFTP 프로토콜 요청에 직접 매핑됩니다 . 버전 3에 대한 SFTP 사양 (OpenSSH에서 사용되는 사양)에 SSH_FXP_RMDIR따르면 “지정된 디렉토리가 비어 있지 않은 경우” ( 작업이 필수 는 아니지만) 작업이 실패 할 수 있다고합니다 .

디렉토리에 서브 디렉토리가없는 경우, rm foo/*쉘 명령이 아닌 OpenSSH SFTP 명령을 사용하여 디렉토리의 모든 파일을 먼저 제거 할 수 있습니다. 그런 다음을 사용하십시오 rmdir.


답변