Linux中如何保留拷贝文件的修改时间? (linux 保留拷贝文件 修改时间)

在Linux系统中,我们有时需要复制或移动文件,但同时又需要保留原文件的修改时间。常见的场景包括备份、迁移、同步数据等。那么,如何在Linux操作系统中实现这一目的呢?本文将介绍两种常用的方法。

方法一:使用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命令进行同步。这些方法可以帮助我们在各种场景下更好地管理数据,并确保数据的完整性和安全性。

相关问题拓展阅读:

linux中如何将最近10天被修改过的所有文件复制到/backup

这个是备份当前目录下的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 保留拷贝文件 修改时间的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux中如何保留拷贝文件的修改时间? (linux 保留拷贝文件 修改时间)