I want to be able to search for files over 14 days and over 10k and than rsync those found files to a destination.
Is there a way to combine these two commands?
find ./ -mtime +14 -size +10k
rsync --remove-sent-files -avz /src /dest
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this communityYou can send the output of find into rsync using one of the options outlined below.
These 2 options are very similar, they both assume you're changing directories to some location and then running the find
command from there.
$ rsync -avz --remove-sent-files \
--files-from=<(find ./ -mtime +14 -size +10k) ./ /dest
You can also use a pipe to feed the list in:
$ find ./ -mtime +14 -size +10k -print0 \
| rsync -av --files-from=- --from0 ./ /dest
This method can be run from anywhere.
$ find /src/dir/ -mtime +14 -size +10k -printf %P\\0 \
| rsync -av --files-from=- --from0 /src/dir/ /dst/dir/
printf %P
: File's name with the name of the command line argument under which it was found removed. This way, you can use any src directory, no need to cd into your src directory first.rsync -haviHn --stats --progress --files-from=<(find /mnt/my-files -mtime 0 -printf "%p\n") / /mnt/backup-disk/
Find will return an absolute path so you need to set / as the copy source
identify -verbose IMG_20200430_113445.jpg | grep -i date
and exif:DateTime
.
Feb 19 at 20:25