web-dev-qa-db-ja.com

なぜsftp rmdirが機能しないのですか?

プライベートサーバースペースから多くのファイルとフォルダーを含むディレクトリを削除しようとしています。私はSFTP経由でうまくログオンしています。ディレクトリ全体に問題なくアクセスできます。 rmで個々のファイルを削除することもできます。しかし、これには永遠に時間がかかります。したがって、削除したい最上位のフォルダーに対してrmdirを実行したいだけです。しかし、これを行うと、

ディレクトリを削除できませんでした:失敗

私が間違っている可能性があることについて何か考えはありますか?

どうもありがとう、サム

18
user1451632

私の経験では、rmdirは空のディレクトリで作業することを好みます。ディレクトリfooを削除しようとしている場合は、次のようにします。

$rm foo/*
$rmdir foo
21
Chris

使用しているSFTPクライアントを指定していません。したがって、OpenSSH SFTP(sftp)を想定しています。

OpenSSH SFTPクライアントのコマンドrmdirは、SSH_FXP_RMDIR SFTPプロトコル要求に直接マップします。バージョン3のSFTP仕様(OpenSSHで使用されるもの)は、SSH_FXP_RMDIR操作が失敗する可能性があると具体的に述べています"指定されたディレクトリが空でない場合"(必須ではないようですが)それ)。

ディレクトリにサブディレクトリがない場合は、rm foo/*(シェルコマンドではなくOpenSSH SFTPコマンドを意味します)を使用して、最初にディレクトリ内のすべてのファイルを削除できます。次に、rmdirを使用します。

5
Martin Prikryl