![如何复制文件夹而不改变其原始创建日期?](https://linux22.com/image/905957/%E5%A6%82%E4%BD%95%E5%A4%8D%E5%88%B6%E6%96%87%E4%BB%B6%E5%A4%B9%E8%80%8C%E4%B8%8D%E6%94%B9%E5%8F%98%E5%85%B6%E5%8E%9F%E5%A7%8B%E5%88%9B%E5%BB%BA%E6%97%A5%E6%9C%9F%EF%BC%9F.png)
我在我的电脑上发现了一个装满旧文件夹的旧档案。我想知道如何复制这个档案,但要保留所有内容,包括其创建日期
答案1
阅读man cp
,并且除了--recursive
开关之外,使用以下之一:
-p same as --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST]
preserve the specified attributes (default: mode,ownership,timestamps), if possible
additional attributes: context, links, xattr, all
答案2
正如其他答案所指出的,如果要保留每个文件属性,则需要使用终端。但是,我建议在命令中使用-a
( --archive
) 选项cp
,该选项专门用于创建相同的存档副本。
cp -a <source> <destination>
rsync
可以使用实用程序(本地和远程文件复制工具)实现相同的效果,其执行速度可能比 更快cp
。它也使用该选项-a
来实现相同的目的。
rsync -a <source> <destination>
例如,将主文件夹中的 Archive 文件夹复制到安装在以下位置的外部 USB 驱动器/media/$USER/USB_drive
:
cp -a /home/$USER/Archive /media/$USER/USB_drive/
或者
rsync -a /home/$USER/Archive /media/$USER/USB_drive/
Archive
这两个命令都会在现有目标文件夹中创建一个包含所有子文件夹和文件的文件夹/media/$USER/USB_drive/
。- 您可以在命令输出中找到 USB 驱动器的安装位置
mount | grep /media
$USER
如果该变量适用于当前用户,则可以保留该变量。该变量将自动替换为您的登录名。
答案3
sudo cp -rp /home/my_home /media/backup/my_home
或者
sudo cp -a /home/my_home /media/backup/my_home
这应该可以。
-r
是递归的-p
是保留模式
答案4
虽然其他答案都是正确的,但您可能希望将文件添加到。压缩存档(如果不是很大的话,可能除了普通副本之外),因为从长远来看它可以更好地保存时间戳(如果有足够的时间,您的数据将被复制到各种存储介质,从备份中恢复,放入和从云端取出等,并且文件元数据(如时间戳)最终会丢失。放在 ZIP 存档中可以保护它。)