我最近在网络上安装了 Synology DiskStation。我使用 Nautilus 3.4.2 中的“浏览网络”按钮从 Ubuntu 12.04.1 计算机安装了它。它显示为 afp://[电子邮件保护]/照片/ 在 Nautilus 中。
到目前为止一切顺利。然后我上传了很多照片,所有照片的修改时间都跨越了几个月。当我查看 DiskStation 上的照片目录时,它们都有复制时的修改时间,而不是源计算机上的修改时间。在 DiskStation 上按日期对它们进行排序就到此为止了。
有没有办法重新复制文件,但保留其修改日期?也许我以错误的方式安装了 DiskStation。也许 Nautilus 是错误的工具。有什么建议吗?
顺便说一句,我已将数 GB 的照片通过 SMB/CIFS 从 Ubuntu 10.04、10.10、11.04 和 11.10 移至另一台 NAS(Plextor PX-EH),修改时间完全保留。问题肯定出在 Synology 或某些 Ubuntu 12.04 软件上。
答案1
我相信我已经解决了这个问题。在 Ubuntu 12.04 中,Nautilus 中有两种方法可以连接到远程 DiskStation NAS。一种保留修改时间,一种不保留。
在 Nautilus 窗口左侧的菜单中,“浏览网络...”按钮最终会将 AFP(Apple 文件协议)连接到 DiskStation,Nautilus 和cp -p
副本均无法通过该协议保存修改时间。我尝试在 DiskStation 中禁用 Apple 支持,但在该模式下,DiskStation 甚至在“浏览网络”中都看不到。
在 Nautilus 的文件菜单中,有一个“连接到服务器...”选项,它提供了多种协议。我选择了 Windows,输入了我的凭据,然后顺利连接。在此模式下,修改时间会保留,因此我可以重新复制照片并保留其日期。
感谢 Sergey 和 david6 的建议。希望大家会发现这些信息很有价值。
答案2
标准cp
命令具有--preserve
在复制时保留某些属性(默认情况下 - 模式,所有权,时间戳)的标志。
像这样:
cp -rp /source/photos/folder /destination/photos/folder
在“正常”情况下应该可以解决问题。但是,afp://
URL 中的内容让我感到困惑 - 这是 Apple Filing Protocol 吗?在这种情况下,一切都无法预料。
我想补充一点——依靠文件修改日期来对照片进行分类非常不可靠。这就是图像元数据(EXIF 等)的用途。或者,至少,只需根据拍摄日期将它们放在目录中:photos/2012/12/05 等。
答案3
这是经典推拉问题,针对远程复制。
这接受者主办方不遵守日期戳已收到文件。Nautilus 有同样的错误,从 10.04 LTS 到 12.10。
这个问题已经得到解决(对于 Nautilus),在两个 Ubuntu 主机之间复制时,总是复制从远程主机(源)到本地主机(接收者)。(又称“拉')
您的问题出在 NAS 盒上,而不是 Ubuntu 上。
您需要它来遵守收到文件的日期戳(默认)。
您是否使用 NFS(Linux)或 CIFS(Windows)进行文件共享?
答案4
要在客户端解决此问题,请尝试在挂载选项中明确指定协议。
从man mount.cifs
:
vers=
SMB protocol version. Allowed values are:
· 1.0 - The classic CIFS/SMBv1 protocol. This is the default.
· 2.0 - The SMBv2.002 protocol. This was initially introduced in
Windows Vista Service Pack 1, and Windows Server 2008. Note that
the initial release version of Windows Vista spoke a slightly
different dialect (2.000) that is not supported.
· 2.1 - The SMBv2.1 protocol that was introduced in Microsoft
Windows 7 and Windows Server 2008R2.
· 3.0 - The SMBv3.0 protocol that was introduced in Microsoft
Windows 8 and Windows Server 2012.
Note too that while this option governs the protocol version used,
not all features of each version are available.
sudo mount -t cifs //mynas/Disk1share /mnt/Data/NAS -o user=me,password=mine,uid=$(id -u),vers=2.0