将文件复制到已安装的 Samba 文件夹时防止更新“修改时间”

将文件复制到已安装的 Samba 文件夹时防止更新“修改时间”

将文件复制到已安装的 Samba 文件夹时,我不希望将“上次修改”属性更改为当前日期。我怎样才能做到这一点?

(K)Ubuntu 12.04 和 Ubuntu 15.10 会出现此行为。它可以使用 GUI 浏览器(使用 nautilus 3.4.2 和 dolphin 2.0 进行测试)进行重现并 cp -p在终端中使用。

Samba 文件夹已通过以下方式安装到本地文件系统:

  • sudo mount -t smbfs //mynas/folder /mnt/nas/ -o user=username

或者

  • sudo mount -t cifs //mynas/folder /home/mnt/nas/ -o user=username

笔记:

  • 当使用类似 的 URL 连接到同一个 Samba 文件夹(无论是使用 nautilus 或 dolphin)时smb://username@mynas/folder/,我可以将文件复制到其中,而无需将“修改时间”替换为当前时间!
  • 但挂载Samba文件夹更方便,而且并不是所有工具都支持smb协议。这就是为什么使用 URIsmb://对我来说不是一个解决方法。

答案1

该命令cp -P不适用于您的需求。您使用的是大写参数字母-P,该字母用于从不遵循符号链接。

您想要使用小写字母来保留时间戳:cp -p


正如问题评论部分所述,使用正确的 gid 和 uid 解决了问题:

sudo mount -t cifs //mynas/folder /home/mnt/nas/ -o user=username -o gid=1000,uid=1000

答案2

还有其他几个实用程序可用于复制文件而不修改其时间戳。rsync(特别是,使用“-t”标志)和cpio(使用“-m”标志)都可以在这种情况下使用。查看每个选项的手册页,看看还有哪些其他选项可能有用。

相关内容