为了使用一些远程存储和生成的数据,我首先通过 下载它们scp servername:/.../big_directory/* ~/
。有许多文件,命令包括所有内容。这些文件的变化不可预测(对我来说),但实际上只有少数文件(而不是很多文件)在下载和下一次下载之间发生变化。有没有办法将它们与我本地已有的文件逐一进行比较,例如if diff file_in_the_server local_file_with_the_same_name returns zero then skip
或类似的东西?这将节省时间并具有革命性。我认为这是不可能的,因为为了比较它们,必须以某种方式进行一些下载,但是我还是要问,以确保这对我来说是巫术
提前非常感谢
答案1
您正在寻找的rsync
选项-u
。来自man rsync
:
--update, -u
This forces rsync to skip any files which exist on the destina‐
tion and have a modified time that is newer than the source
file. (If an existing destination file has a modification time
equal to the source file's, it will be updated if the sizes are
different.)
因此您的完整命令将是:
rsync -u servername:/.../big_directory/* ~/