17

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?

4 Answers 4

33

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.

8
  • As a side note, the MS command-line client also supports mput for putting multiple files up at a time (mput *.dll). Mar 8, 2012 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, 2012 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, 2012 at 16:18
  • Thanks but where should I put the yes response?
    – F G
    Mar 8, 2012 at 16:23
  • 5
    use prompt to switch interactive mode off before using mdel
    – MBu
    Mar 8, 2012 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, 2017 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
1

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .