在Linux系统中,我们有时需要复制或移动文件,但同时又需要保留原文件的修改时间。常见的场景包括备份、迁移、同步数据等。那么,如何在Linux操作系统中实现这一目的呢?本文将介绍两种常用的方法。
成都创新互联自2013年创立以来,先为成都等服务建站,成都等地企业,进行企业商务咨询服务。为成都企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
方法一:使用cp命令的-p参数
cp命令是Linux系统中常用的复制文件命令,使用-p参数可以保留原文件的权限、时间等元数据信息。
例如,要将源文件/backup/data.txt复制到目的文件夹/home/user/下,并保留原文件的所有元数据信息,可以使用以下命令:
“`
cp -p /backup/data.txt /home/user/
“`
这样,目标文件/data.txt的修改时间、访问时间和创建时间都将与源文件一致。
可以使用ls -l命令查看源文件和目标文件的属性信息:
“`
ls -l /backup/data.txt
-rw-r–r– 1 root root 1024 Jun 1 10:00 /backup/data.txt
ls -l /home/user/data.txt
-rw-r–r– 1 root root 1024 Jun 1 10:00 /home/user/data.txt
“`
可以看到,两个文件的属性信息一致,包括文件大小、权限、时间等元数据都被保留了下来。
方法二:使用rsync命令进行同步
rsync是Linux系统中常用的数据同步工具,它可以在不同主机之间同步文件和文件夹,并保留元数据信息。
例如,要将源文件夹/backup/下的所有文件同步到目标文件夹/home/user/下,并保留原文件的修改时间和权限信息,可以使用以下命令:
“`
rsync -av –no-owner –no-group /backup/ /home/user/
“`
其中,-a表示同步时保留所有权限、时间等元数据信息,-v表示详细输出同步过程,–no-owner和–no-group表示不同步文件所有者和组,避免在目标文件夹下出现无法访问的文件。
可以使用ls -l命令查看源文件和目标文件的属性信息,可以看到同步后两个文件夹的属性信息一致。
“`
ls -l /backup/
drwxr-xr-x 2 root root 4096 Jun 1 10:00 folder1
-rw-r–r– 1 root root 1024 Jun 1 10:00 data.txt
ls -l /home/user/
drwxr-xr-x 2 root root 4096 Jun 1 10:00 folder1
-rw-r–r– 1 root root 1024 Jun 1 10:00 data.txt
“`
综上,Linux系统中有多种方法可以保留拷贝文件的修改时间,其中最常用的方法是使用cp命令的-p参数和rsync命令进行同步。这些方法可以帮助我们在各种场景下更好地管理数据,并确保数据的完整性和安全性。
相关问题拓展阅读:
这个是备份当前目录下的10天内修改的所有文件的脚本,你可以自己研究一下子。注释写的很详细
# 在一个燃碰扮经过tar和gzip处理过的文件目录中
# 备份10天当前目录下所有修改的文件.
BACKUPFILE=backup-$(date +%m-%d-%Y)
# 在备份文件中嵌入时间.
archive=${1:-$BACKUPFILE}
# 如果在命令行中没有指定备份文件的文件名,
# 那么将默认使用”backup-MM-DD-YYYY.tar.gz”.
tar cvf – `find . -mtime -10 -type f -print` > $archive.tar
# ‘’内是find命令:皮灶.表示当前路径,
#+ -mtime -10表示那些最近10*24小时内被修改的文件,
#+ -type f表示一般的文件,
#+ -print 在标准输出中打印完整的文件名
gzip $archive.tar
echo “Directory $PWD backed up in archive file \”$archive.tar.gz\”.”
# 上边代码,#+ 如果在发现太多的文件的时候,或者是如果文件
#名包括空格的时候,将执行失败.
# Stephane Chazelas建议使用下边的两种代码之一
#
# find . -mtime -1 -type f -print0 | xargs -0 tar rvf “$archive.tar”
# -print0 在标准输出中打印完整的文件名,随后跟一个null字符吵租,
# 对应了xargs命令中的‘-0’选项.
# 使用gnu版本的find.
# find . -mtime -1 -type f -exec tar rvf “$archive.tar” ‘{}’ \;
# 对于其他风格的UNIX便于移植,但是比较慢.
#
exit 0
#####################End Script#####################
通过
电脑管家
工具箱的最近文档就行
这里面可以快速找到最近30天内含消唤打开过的电脑文档
然后还可以通过
小程序
,让手机和电脑之桥或间文档进行互传。谈凯
find . -mtime 10 -daystart -exec cp -a {} /backup \;
解释:
-mtime 10 -daystart:从现在起前碧最近10天内修改过的文件
-exec:指定一条新命令
cp -a:递归复制
/backup:想要复制到的的目慧野举脊缓的目录
\;:为-exec命令的结尾标记符号
关于linux 保留拷贝文件 修改时间的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
分享标题:Linux中如何保留拷贝文件的修改时间?(linux保留拷贝文件修改时间)
链接URL:http://www.shufengxianlan.com/qtweb/news2/233102.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联