仅当src / dst之间的文件大小不同时才如何复制文件?


1

我希望执行以下文件复制:

cp --verbose /srcfile /dstfile

但是我只希望在dstfile不存在或dstfile文件大小与的文件大小不同的情况下执行复制srcfile

如何使用cpbash中的eg 或其他常见文件复制工具完成此操作?

Answers:


0

确实不是最优雅的方式:

if [ -e /dstfile ] ; then
 destsize=$(stat -c %s /dstfile)
 srcsize=$(stat -c %s /srcfile)
 if [ "$srcsize" -ne "$destsize" ] ; then
   cp --verbose /srcfile /dstfile
 fi
fi

您也可以尝试习惯rsync


嗯,理想情况下,我需要一根衬里,就像你说的那样,这看起来很复杂。关于rsync;您认为它可以复制单个文件还是总是以目录作为输入?
fredrik

好吧,单线并不一定“看起来”那么简单,只是想为您指明正确的方向。我不知道你到底想实现什么。因此,请尝试rsync使用开关--size-only--checksum
Lenniey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.