![将文件复制到已安装的 Samba 文件夹时防止更新“修改时间”](https://linux22.com/image/87803/%E5%B0%86%E6%96%87%E4%BB%B6%E5%A4%8D%E5%88%B6%E5%88%B0%E5%B7%B2%E5%AE%89%E8%A3%85%E7%9A%84%20Samba%20%E6%96%87%E4%BB%B6%E5%A4%B9%E6%97%B6%E9%98%B2%E6%AD%A2%E6%9B%B4%E6%96%B0%E2%80%9C%E4%BF%AE%E6%94%B9%E6%97%B6%E9%97%B4%E2%80%9D.png)
将文件复制到已安装的 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协议。这就是为什么使用 URI
smb://
对我来说不是一个解决方法。
答案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”标志)都可以在这种情况下使用。查看每个选项的手册页,看看还有哪些其他选项可能有用。