2012-05-25 1 views
25

Sono connesso a un server Unix e sto cercando, tramite FTP, di eliminare la directory dir con diversi file al suo interno. Se usoFTP Elimina directory non vuota

ftp> delete dir/*

ottengo

550 Wildcard is ambiguous.

Quando uso

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

ho ancora

550 Wildcard is ambiguous.

quando provo

ftp> glob 
Globbing on. 
ftp> mdelete dir 

sono richiamato per ogni file.

Come posso eliminare/emptyAndDelete una directory senza richiedere alcun file?

/Grazie

risposta

30

ho preso a lavorare in due fasi, su un server con accesso limitato, non SFTP, solo FTP tramite riga di comando.

Ti piace questa:

mdelete folder_name/* 
rmdir folder_name 
+17

Questo solo se non ci sono sottocartelle all'interno di 'folder_name' – CJBS

+0

Argh, hai ragione. – EcchiOli

17

Se hai file nascosti o le cartelle sul vostro server (ad esempio .folder), è necessario impostare le lftp list-opzioni a "-a".

Quindi questo ha lavorato per me:

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

Vedere anche [questa risposta] (http://serverfault.com/questions/221436/delete-recursive-directories-with-ftp-command-on-bash) su Serverfault. E [questo] (http://happy-coding.com/transfer-a-file-to-a-remote-server-using-lftp/). 'lftp -u login, password ftp_server_location -e" rm -r directory_to_delete; exit "' – chaserx

+1

La mia risposta preferita, lftp è molto più semplice. –

+1

È un problema. 'Lftp' non rimuove tutti i file in una cartella come una richiesta. Sembra fare un viaggio di andata e ritorno per ogni singolo file, quindi è molto lento. – joeytwiddle

3

$ ftp -i ...

si spegnerà spingendo su mdel, che è ciò che si desidera. Non può essere fatto all'interno di ftp.

+0

Mi hai appena salvato la vita con quel '-i' – tester

0

Sto usando Filezilla e cancella le cartelle in modo ricorsivo. Credo che il ftp non abbia un comando che cancella in modo ricorsivo le cartelle.