Only show changed files while syncing from ext4 to NTFS

I would like rsync to print modified and deleted files. The verbose option (-v) does print modified files but also the list of subdirectories, maybe because touched directories are considered modified. Since I sync a lot of files from a lot of subdirectories, it's impossible to see the actual changes.

So, is there a way to not print directories using rsync ?

Im not looking for grep -v "*/$" kind of answers since it would also exclude new directories.

Command I am using: rsync -avh --delete /media/data/src /media/data/bkp

And everytime it prints the list of all directories:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

EDIT: Ok, after some intensive tests .. It doesn't print all directories when syncing from an ext4 partition to an ext4 and from NTFS to NTFS. It only does when syncing from ext4 to NTFS .. And options -c or --omit-dir-times don't change that.


Solution 1:

You could try using --omit-dir-times switch to ignore directory times (take a look at rsync man page).

I personally find that using -c switch is the best way to ensure that only the files whose contents has been changed show up in the output.

Note that using -c will slow down rsync.

Solution 2:

Instead of changing the mount type you can also tell rsync to ignore file permissions when copying to a filesystem that doesn't support it. The following command works for me.

From the rsync man page:

In summary: to give destination files (both old and new) the source permissions, use --perms. To give new files the destination-default permissions (while leaving existing files unchanged), make sure that the --perms option is off and use --chmod=ugo=rwX (which ensures that all non-masked bits get enabled). If you’d care to make this latter behavior easier to type, you could define a popt alias for it, such as putting this line in the file ~/.popt (the following defines the -Z option, and includes --no-g to use the default group of the destination dir):

rsync alias -Z --no-p --no-g --chmod=ugo=rwX