“rsync -a”命令是否保存源文件的所有属性?

“rsync -a”命令是否保存源文件的所有属性?

我的 Android 手机上有照片和视频。我把它们备份到我的硬盘里。我想保留文件的属性,因为您可以理解它的重要性。要保存的主要属性是日期、时间、位置(如果源文件中存在)。

为了实现这一目标,我跑了

rsync -a "source dir" "dest. dir"

目标包含源的所有文件夹结构,并且文件也具有相同的日期和时间。所以,看起来它已经正常工作了。但我没有检查如果源文件有位置(拍摄视频/音频的地方),位置是否也被保存。

那么,只是想澄清该命令已保存所有属性吗?还有其他选项rsync可以用来更清楚地了解属性或完成工作吗?

答案1

从文件系统的角度来看,位置(来自 GPS)是文件数据的一部分,而不是其元数据。它存储在文件内的 EXIF、XMP 等标记中。

所以rsync(或者甚至是 plain cp)将保留它。

有很多工具可以显示文件中的 EXIF 和 XMP 数据;例如:

$ exiv2 -pa pr IMG_20150530_155931.jpg
Exif.Image.DateTime                          Ascii      20  2015:05:30 15:59:31
Exif.Image.GPSTag                            Long        1  543
Exif.GPSInfo.GPSDateStamp                    Ascii      11  2015:05:30
Exif.GPSInfo.GPSAltitudeRef                  Byte        1  Above sea level
Exif.GPSInfo.GPSLongitudeRef                 Ascii       2  West
Exif.GPSInfo.GPSImgDirection                 Rational    1  29/1
Exif.GPSInfo.GPSLongitude                    Rational    3  77deg …

答案2

正如您所描述的,“位置(拍摄视频/音频的地方)”一般来说不是文件系统所关注的元数据:它是数据;文件内容的一部分,而不是文件外部的属性。

因此,如果您检查过的文件复制正确,那么“位置数据”也将被复制。即使您使用 rsync 以外的工具进行复制,情况也是如此。

删除文件中存储的此类图像或视频元数据的唯一方法是,您是否使用内容感知工具进行转换(例如,调整图片或视频的大小),而不仅仅是复制。

相关内容