私の経験では、rmdir は空のディレクトリで作業することを好みます。ディレクトリ foo を削除しようとしている場合 、私なら:
$rm foo/*
$rmdir foo
使用している SFTP クライアントを指定していません。したがって、OpenSSH SFTP (sftp) を想定しています。 ).
コマンド rmdir OpenSSH SFTP クライアントでは SSH_FXP_RMDIR に直接マップされます SFTP プロトコル要求。バージョン 3 (OpenSSH で使用されるもの) の SFTP 仕様では、SSH_FXP_RMDIR 「指定されたディレクトリが空でない場合」、操作が失敗する可能性があります (それを義務付けているようには見えませんが).
ディレクトリにサブディレクトリがない場合は、 rm foo/* を使用できます (シェルコマンドではなく、OpenSSH SFTPコマンドを意味します)最初にディレクトリ内のすべてのファイルを削除します。そして rmdir を使用します .