我的硬盘已接近容量(大部分/home
)。我安装了一个新的更大的驱动器,复制/home
到它并继续我的生活。
这是 2013 年 5 月 17 日。我知道那是 2013 年 5 月 17 日,因为我在复制所有内容时忘记了存档标志,因此服务器上自那时以来尚未更新的每个文件的日期都是 2013 年 5 月 17 日。
我仍然保留着原始/home
目录 ( /oldhome
) 以及正确的上次修改日期。
我需要一个起点来编写一个脚本,将/home
日期为 2013 年 5 月 17 日的每个文件替换为相应的原始文件/oldhome
(正确的日期完好无损)。我只想替换 2013 年 5 月 17 日的文件,因为该日期存在的一些文件随后已更新,我当然希望保留这些文件的更新版本。
文件计数约为/oldhome
63K
考虑从哪里开始?
编辑
好的。根据下面 Theophrastus 的评论(谢谢),我可以从以下开始:
...从内部/home
:
find -type f -newermt 2013-5-17 ! -newermt 2013-5-18 -print0 | xargs -I % -0 rsync -avzI --dry-run /oldhome% /home%
...我认为可能是几乎那里。的输出find
有一个前导句点,它破坏了 rsync 命令中的路径(/oldhome./directory/filename /home./directory/filename.ext
当所有内容都连接时我们得到了。我可以以find
某种方式重述语句以省略前导句点吗?目的是识别具有/home
5/17/2013 日期的文件并将它们替换为来自的副本/oldhome
- 没有/oldhome
日期晚于 2013 年 5 月 17 日的文件。