Saya mencoba menghapus direktori dengan banyak file dan folder dari ruang server pribadi saya. Saya masuk melalui SFTP baik; Saya dapat mengakses seluruh direktori tanpa masalah; Saya bahkan dapat menghapus file individual dengan rm. Tapi ini akan membuat saya selamanya - jadi saya benar-benar ingin hanya melakukan rmdir pada folder tertinggi yang ingin saya hapus. Tetapi ketika saya melakukan ini, saya mengerti
Tidak dapat menghapus direktori: Kegagalan
Adakah pemikiran tentang apa yang mungkin saya lakukan salah?
Terima kasih banyak, Sam
Jawaban:
Dalam pengalaman saya, rmdir lebih suka bekerja pada direktori kosong. Jika Anda mencoba menghapus direktori
foo
, saya akan lakukan:sumber
rm foo/*
tidak berfungsi karenafoo/
berisi direktori yang tidak kosong. Untungnyarsync
diizinkan juga dan saya membuat direktori kosong secara lokal dan kemudian digunakanrsync -rv --delete empty_local_dir/ host.example.org:/foo/
untuk menghapus semuanya di bawahfoo/
direktori jarak jauh . Setelah itu dimungkinkanrmdir foo
melalui SFTP.Anda belum menentukan, klien SFTP apa yang Anda gunakan. Jadi saya mengasumsikan OpenSSH SFTP (
sftp
).Perintah
rmdir
dalam klien OpenSSH SFTP memetakan langsung keSSH_FXP_RMDIR
permintaan protokol SFTP. Spesifikasi SFTP untuk versi 3 (yang digunakan oleh OpenSSH) secara spesifik menyebutkan bahwaSSH_FXP_RMDIR
operasi mungkin gagal, "jika direktori yang ditentukan tidak kosong" (meskipun tampaknya tidak mengamanatkannya).Jika direktori tidak memiliki subdirektori, Anda dapat menggunakan
rm foo/*
(artinya perintah OpenSSH SFTP, bukan perintah shell) untuk menghapus semua file dalam direktori terlebih dahulu. Dan kemudian gunakanrmdir
.sumber
rm -r *
dengan SFTP. Saya pikir itu tidak mungkin.sftp
(klien baris perintah OpenSSH). Mungkin dengan SFTP (protokol), jika Anda memiliki klien yang cukup pintar.