My first thought when reading your question was "This looks like a job for
rsync!". Unfortunately, while
rsync can indeed leap tall buildings in a single bound, it cannot deal with FTP. If you have ssh access to the mirror, things will be be much easier.
Assuming you don't, you can try mounting the remote FTP directory locally, and then you can use simple
cp (inspired by this):
Install curlftpfs. If you are on a debian-based distro (I assume you are using Linux since you mention
apt-get install curlftpfs
Create local mount path
mkdir -p /mnt/myftp
Mount the destination ftp site using
curlftpfs -o allow_other ftp://user:email@example.com /mnt/myftp
cp to copy the files, passing it a
find command as an argument:
cd /mnt/myftp && \
cp -v --parents `find . -type f -mtime -20` ~/foo/
Combined, these commands/options should have the desired effect of mirroring the remote server while ignoring older files.
This is a relatively simplistic case scenario. If you have more advanced requirements (all those
wget options you left out) you may want to have a look at
man cp or, for more dvanced options,
man rsync. You will be able to do essentially the same thing in
rsync by passing the result of the
find command using
If you update your question with more specific requirements (preserving links, hard links, timestamps, user privileges, directory recursion and the like) I should be able to modify my answer to suit them.