我在bash脚本中使用rsync来使文件在一些服务器和NAS之间保持同步。我遇到的一个问题是尝试生成rsync期间已更改的文件列表。
这个想法是,当我运行rsync时,我可以将已更改的文件输出为文本文件-希望在内存中有一个数组-然后在脚本存在之前,我只能对更改后的文件运行chown 。
有没有人找到执行此类任务的方法?
# specify the source directory
source_directory=/Users/jason/Desktop/source
# specify the destination directory
# DO NOT ADD THE SAME DIRECTORY NAME AS RSYNC WILL CREATE IT FOR YOU
destination_directory=/Users/jason/Desktop/destination
# run the rsync command
rsync -avz $source_directory $destination_directory
# grab the changed items and save to an array or temp file?
# loop through and chown each changed file
for changed_item in "${changed_items[@]}"
do
# chown the file owner and notify the user
chown -R user:usergroup; echo '!! changed the user and group for:' $changed_item
done
-i
用于逐项列出,但还有一些其他的变化……