在 Android 设备上恢复 tar 存档时出现错误“Cannot utime:不支持操作”

sмu*_*urf 6 android tar

我将手机(运行带加密功能的 CyanogenMod 11 的三星 Galaxy S4 Mini)中的 MicroSD 卡更换为一张更大的卡。在拉出旧的之前,我将其内容备份到一个 tar 文件中:

/run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C016%5D/SD card$ tar czvf ~/tmp/sgm4/sdcard.tar.gz *

然后更换卡,格式化新卡并尝试恢复我的文件:

/run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C017%5D/SD card$ tar xzvf ~/tmp/sgm4/sdcard.tar.gz

文件已恢复,但对于每个文件,我都收到一条错误消息,例如:

00001.vcf
tar: 00001.vcf: Cannot utime: Operation not supported
Run Code Online (Sandbox Code Playgroud)

告诉我tar无法恢复文件的原始时间戳。这是通过ls -l显示当前日期和时间来确认的。

我通常不会担心它,但 Android/data 下有一些文件属于可能对时间戳敏感的应用程序。

是否有任何挂载选项或其他魔法可以允许在挂载的 mtp 文件系统上设置文件的时间戳?

该问题与我使用加密有关吗?

使用lubuntu 15.04。

更新

原来,MicroSD卡本身是使用vfat文件系统格式化的,没有任何加密。我将其从手机中取出,将其插入另一台计算机(Ubuntu 14.04),并且能够解压另一个 tarball,没有任何错误。解压文件的时间戳已正确恢复。

看起来无法设置文件的时间戳是 mtp 特有的。有谁知道如何克服这个问题?

Pan*_*her 9

当您在目标目录(本例中为 /tmp )中没有适当的权限时,或者如果您正在提取到非 Linux 文件系统(vfat 或 ntfs),则会出现此错误。

将存档提取或制作到您拥有的位置,例如您的主目录。