0

On my local machine I have some directories (with subdirectories) with many files (jpeg and nef), like:

1.jpg 1.nef 2.jpg 2.nef .... 

what I want to do is to sync on an HD all files (both jpeg and nef) but after syncing, deleting on my local computer only the nef files and keep the jpg.

Is there a way to combine this with --remove-source-files?

2 Answers 2

1

For safety, I would delete the .nef files in a separate step after using rsync to transfer both types of files. For example, like this:

rsync --verbose --archive --prune-empty-dirs \ --include='*.nef' \ --include='*.jpg' \ --include='*/' \ --exclude='*' \ "$source/" "$target" find "$source" -type f -name '*.nef' -delete 

The rsync command here would only copy the .nef and .jpg files (it would skip any other file, and it would not create empty directories at $target due to --prune-empty-dirs), and then the find command would delete all .nef files.

I tend to never use --remove-source-files with rsync.

2
  • why --include='*/' \ and --exclude='*' \ ? BTW it seems a good solution. Commented Mar 2, 2020 at 14:35
  • @matteo I only want to copy the files with the given filename suffixes, which is why I use --exclude='*' to exclude all other files (note that I know nothing about what else you have in your source directory). To be able to recurse, I still have to include directories (these would be excluded by --exclude='*'), which is why I also have --include='*/'. Commented Mar 2, 2020 at 14:47
1

We may need to sync twice since we dont have option to exclude source-delete.

Try as,

rsync -av --remove-source-files --exclude='*.jpg' Source/ Destination ; rsync -av Source/*.jpg Destination 
0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.