linux – 在保留所有属性的同时将文件移出卷然后再打开?

前端之家收集整理的这篇文章主要介绍了linux – 在保留所有属性的同时将文件移出卷然后再打开?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一种情况,我正在测试一个有一些元数据问题的新文件系统.所有文件都完好无损,但我最终必须将每个文件有效地移动到另一个卷,然后立即返回原位.

很明显,mv不会这样做,因为它无法保留所有属性(特别是所有时间戳).当我执行cp -p / original / path / to / file / tmp / location / file,rm / original / path / to / file,cp -p / tmp /时,我正在考虑更多的查找命令. location / file / original / path / to / file,rm / tmp / location / file.也许所有这些命令都在脚本中传递给find exec?

我不确定这里最有效的方法,但是想要一些快速的输入,以确保我覆盖我的所有基础,并有一个精确的命令,不会让我哀悼某种数据属性丢失,当它说的都是并做了.我有几百千兆字节来回移动所以我需要尽可能小心和高效.

这是我到目前为止提出的解决方案,并且会喜欢一些输入:

Shell脚本safe_move.sh:

#!/usr/bin/env bash
SRC_FILE_AND_PATH="$1"
SRC_BASENAME=`basename "$1"`
DESTINATION_PATH="/mnt/tmp"

cp -a ${SRC_FILE_AND_PATH} ${DESTINATION_PATH}/${SRC_BASENAME}
rm -f ${SRC_FILE_AND_PATH}
cp -a ${DESTINATION_PATH}/${SRC_BASENAME} ${SRC_FILE_AND_PATH}
rm -f ${DESTINATION_PATH}/${SRC_BASENAME}

这将被称为:

find /path/to/move -type f -exec safe_move.sh {} \;

有任何想法或更正?

>我确实发现了一个问题,由于修改文件夹的子项… hrm,这将导致ALTER文件夹日期.不知道如何克服这个问题.

解决方法

考虑将tar与-p( – preserve)一起使用.那样你也有一个好的tarball来保持…你知道……以防万一.我所知道的任何元数据都不会被遗忘.如果发现我错了,我也不承担任何责任. =)

编辑:符号链接日期将不会被保留!看到?!永远不要相信具有root权限的猫.

其他选项包括cplv,但您没有至少与源大小相同的卷组. cpdup也是.如果它全部在同一个卷组上,则rsync可能是一个选项.

猜你在找的Linux相关文章