≡ Menu

Linux / Unix rsync: Delete Source File After Transfer

I would like to move all desktop:~/Downloads/*.avi files from my desktop to laptop:~/Download/ using rsync. How do I delete source file after successful transfer is done using rsync command under BSD/Unix/Linux/Apple OS X operating systems?


You need to pass the --remove-source-files option to the rsync command. It tells rsync to remove from the sending side the files (meaning non-directories) that are a part of the transfer and have been successfully duplicated on the receiving side. Do not pass the --delete option to rsync command as it delete extraneous files from destination directory.

Delete source after successful transfer using rsync

The syntax is:

rsync --remove-source-files -options /path/to/src/ /path/to/dest
rsync --remove-source-files -options /path/to/src/ computerB:/path/to/dest
rsync --remove-source-files -av /path/to/src/*.avi computerB:/path/to/dest

You can always perform a trial run with no changes made using --dry-run option:

rsync --dry-run --remove-source-files -azv /path/to/Download/*.avi laptop:~/Download

If you like output run the final command without --dry-run option:

rsync --remove-source-files -azv /path/to/Download/*.avi laptop:~/Download
Share this tutorial on:

Your support makes a big difference:
I have a small favor to ask. More people are reading the nixCraft. Many of you block advertising which is your right, and advertising revenues are not sufficient to cover my operating costs. So you can see why I need to ask for your help. The nixCraft, takes a lot of my time and hard work to produce. If you use nixCraft, who likes it, helps me with donations:
Become a Supporter →    Make a contribution via Paypal/Bitcoin →   

Don't Miss Any Linux and Unix Tips

Get nixCraft in your inbox. It's free:



{ 9 comments… add one }
  • Vijay September 14, 2012, 5:17 am

    This is one of the good aspect of rsync. Additionally, you can use this too --delete-after.

    • Dan March 14, 2014, 6:33 am

      --delete-after will remove the destination files after the transfer, not the source files.

  • Jalal Hajigholamali September 15, 2012, 4:54 am

    Hi,
    Very nice article….
    thanks

  • Pankaj July 24, 2013, 6:13 am

    this is to delete source file what would be the command if we want to delete an old file from destination after rsync complete
    my scenario is
    rsync -e ‘ssh -p 22’ -Cavz user@remote_computer:/home/user/dbbackup /home/user/backup/
    but this command rsync new file but also keep the old file in my home/user//backup/
    I want to remove the old file just want newly copied file.

    Please help.

  • Matt August 8, 2013, 7:09 pm

    actually its called –remove-sent-files now i think? Well my version was anyway

  • Bharat March 10, 2014, 8:18 am

    Please explain something about differential backup in rsync.

  • shgn January 11, 2015, 5:59 am

    Thank you. How to delete directory from source after sync beside –remove-source-files?

  • Tyee Cambron May 26, 2015, 2:02 am

    Wait, what is the -options perimeter for??? I don’t understand, because i didn’t see it in the ‘man rsync’ command on my macbook.

    • Andrew July 11, 2015, 11:11 am

      Tyee Cambron, the “-options” perimeter is not an actual perimeter. The author has added that in to show that that is where you put your options, such as avz. So “-options” would be replaced by “-avz”

Security: Are you a robot or human?

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">


   Tagged with: , , , , , ,