16

I'm trying to run this command via FTP in order to delete some files I have stored in a folder in my website:

DEL *.csv

However this doesn't work and I don't know why. However if I try to delete every single file this works:

DEL file.csv (works)

How could I do in order to solve this issue?

32

If you're using the Windows command-line ftp client, then you will need to use mdelete to delete multiple files, as delete will only delete a single file.

Edit: Answering the additional questions in the comments.

If you want to put these commands in a file so that you can perform them as some kind of batch process, you could create a text file and put the commands in sequence there:

prompt
mdel *
quit

Then you could run this as a single step with the -s parameter.

7
  • As a side note, the MS command-line client also supports mput for putting multiple files up at a time (mput *.dll). Mar 8 '12 at 15:57
  • Thanks, it works fine!!! However if I write MDEL *.csv it asks the confirmation, I would do this automatically without confirmation, how could I do this?
    – F G
    Mar 8 '12 at 16:09
  • I've not tested it, but you might try putting the mdel command (and possibly the "yes" response that mdel wants) inside a text file and then using the -s option to load the ftp commands from the file.
    – Canute Bigler
    Mar 8 '12 at 16:18
  • Thanks but where should I put the yes response?
    – F G
    Mar 8 '12 at 16:23
  • 4
    use prompt to switch interactive mode off before using mdel
    – MBu
    Mar 8 '12 at 16:32
3

To use mdelete use the syntax below to automate the process

At the FTP> use the "prompt" command to disable interaction (mode off)

Type this command:

  • FTP> mdelete [directory] *.extenstion |yes

For example, mdelete standard *.jpg |yes

1
  • mdelete with prompts ftw.
    – justinpage
    Apr 10 '17 at 22:43
1

With Windows 7:

The existing answer will work only partially. To delete more files at once without confirmation from the server we must connect to the server with the command:

ftp -i yourwebsite

So after you connect with that command, you can use mdelete at the FTP prompt:

mdelete *.html
0

This is an example for an inline multidelete ftp script, added bonus an aritmetic YYYYMM variable. Use prompt to disable an interactive prompt query.

#!/bin/sh
## Delete files from FTP server

HOST=11.22.33.44
USER=myuser
PWD="mypwd"

YM=$(date +'%Y%m')
YM=$(( $YM-3 ))
echo YearMonth $YM

ftp -p -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PWD
prompt
mdel prefix${YM}*.zip
quit
END_SCRIPT
exit 0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.