2012-05-25 16 views
25

Mam połączenie z serwerem uniksowym i próbuję, poprzez FTP, usunąć katalog dir z kilkoma plikami w nim. Jeśli używamFTP Usuń pusty katalog

ftp> delete dir/*

uzyskać

550 Wildcard is ambiguous.

Gdy używam

ftp> prompt off 
Interactive mode off. 
ftp> mdelete dir/* 

wciąż otrzymuję

550 Wildcard is ambiguous.

Kiedy próbuję

ftp> glob 
Globbing on. 
ftp> mdelete dir 

jestem poproszony o każdym pliku.

Jak w łatwy sposób usunąć/opróżnić i usunąć katalog bez otrzymania monitu o każdy plik?

/Dzięki

Odpowiedz

30

Dostałem go do pracy w dwóch etapach, na serwerze z ograniczonym dostępem, bez SFTP, FTP tylko poprzez polecenia.

Jak to:

mdelete folder_name/* 
rmdir folder_name 
+17

To tylko jeśli nie ma podfolderów w 'nazwa_folderu' – CJBS

+0

Argh, masz rację. – EcchiOli

17

Jeśli masz ukryte pliki lub foldery na serwerze (na przykład .folder), trzeba ustawić listę-options lftp do "-a".

Więc ten pracował dla mnie:

$ lftp -u user,pass server 
> set ftp:list-options -a 
> cd /folder/to/be/empty/ 
/folder/to/be/empty/> glob -a rm -r * 
+3

Zobacz także [ta odpowiedź] (http://serverfault.com/questions/221436/delete-recursive-directories-with-ftp-command-on-bash) na stronie Serverfault. I [to] (http://happy-coding.com/transfer-a-file-to-a-remote-server-using-lftp/). 'lftp -u login, hasło ftp_server_location -e" rm -r directory_to_delete; exit "' – chaserx

+1

Moja ulubiona odpowiedź, lftp jest o wiele łatwiejsze. –

+1

Szkoda, że ​​'lftp' nie usuwa wszystkich plików w folderze jako jednego żądania. Wygląda na to, że robimy podróż w obie strony dla każdego pliku, więc jest bardzo powolny. – joeytwiddle

3

$ ftp -i ...

wyłączy monitowania o mdel, czyli to, co chcesz. Nie można tego zrobić w ftp.

+0

Właśnie uratowałeś moje życie tym "-i" – tester

0

Używam aplikacji Filezilla, która usuwa rekursywnie foldery. Uważam, że ftp nie ma polecenia, które rekursywnie usuwa foldery.

Powiązane problemy