Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm looking for an FTP-client which allows me to easily "upload files that have been modified since last upload". (Or "synchronize" directories based on modification date.)

I'm on Ubuntu.

So far I've tried gnome-commander, gftp, midnight commander.

(I know I could mount the ftp filesystem and use cp -u but I have lots of bad experience from FTP-mounted file systems.)

share|improve this question

I use FileZilla, but it really sounds like you want to use Rsync... without SSH, though you could use lftp.

from the man page: mirror [OPTS] [source [target]]

 Mirror specified source directory to local target directory.
 If  target directory ends with a slash, the source base name
 is appended to target directory name. Source  and/or  target
 can be URLs pointing to directories.

      -c, --continue      continue a mirror job if possible
      -e, --delete        delete files not present at remote site
          --delete-first       delete old files before transferring new ones
          --depth-first        descend into subdirectories before transferring files
      -s, --allow-suid         set suid/sgid bits according to remote site
          --allow-chown   try to set owner and group on files
          --ascii         use ascii mode transfers (implies --ignore-size)
          --ignore-time        ignore time when deciding whether to download
          --ignore-size        ignore size when deciding whether to download
          --only-missing  download only missing files
          --only-existing download only files already existing at target
      -n, --only-newer    download only newer files (-c won't work)
          --no-empty-dirs don't create empty directories (implies --depth-first)
      -r, --no-recursion  don't go to subdirectories
          --no-symlinks   don't create symbolic links
      -p, --no-perms      don't set file permissions
          --no-umask      don't apply umask to file modes
      -R, --reverse       reverse mirror (put files)
      -L, --dereference   download symbolic links as files
      -N, --newer-than=SPEC    download only files newer than specified time
          --on-change=CMD      execute the command if anything has been changed
          --older-than=SPEC    download only files older than specified time
          --size-range=RANGE   download only files with size in specified range
      -P, --parallel[=N]  download N files in parallel
          --use-pget[-n=N]     use pget to transfer every single file
          --loop          loop until no changes found
      -i RX, --include RX include matching files
      -x RX, --exclude RX exclude matching files
      -I GP, --include-glob GP include matching files
      -X GP, --exclude-glob GP exclude matching files
      -v, --verbose[=level]    verbose operation
          --log=FILE      write lftp commands being executed to FILE
          --script=FILE        write lftp commands to FILE, but don't execute them
          --just-print, --dry-run   same as --script=-
          --use-cache          use cached directory listings
      --Remove-source-files    remove files after transfer (use with caution)
      -a             same as --allow-chown --allow-suid --no-umask

I'll spare you the rest. there's enough for a novella.

share|improve this answer
oh, and it also has reverse mirror. that is mirror -R (which sounds like what you want to do) – 0x90 Oct 3 '10 at 6:40
thanks. great answer. – aioobe Oct 3 '10 at 11:17

I just found out about sitecopy and it does precisely what I want. I just entered

site myftpsite
    remote /
    local /home/aioobe/work/mysite/public
    username myuser
    password mypass

and then I just type sitecopy --update myftpsite and it "synchronizes" the files based on timestamp.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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