通过命令行使用“复制”和“粘贴”时备份文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过命令行使用“复制”和“粘贴”时备份文件相关的知识,希望对你有一定的参考价值。
我使用命令cp -a <source>/* <destination>
复制和粘贴一个特定目标内的文件。在目标中,上述命令仅替换源中存在的文件夹内的文件。如果目标中存在其他文件,则该命令将不执行任何操作并保持原样。现在,在进行粘贴之前,我想要备份将要用复制粘贴替换的文件。 cp命令中有一个选项可以执行此操作吗?
答案
如果要备份将从源复制的这些文件,请使用GNU cp中提供的-b选项
cp -ab <source>/* <destination>
您应该了解2个警告。
- 据我所知,这个命令在非GNU系统(如BSD系统)中不可用
- 它将要求确认目标中的每个现有文件。我们可以使用-u选项减少问题,但这在脚本中是不可用的。
在我看来,你正在尝试进行备份(将文件复制到另一个位置,不要擦除它们,不要覆盖已存在的那些),你可能想看一下rsync命令。将编写相同的命令
rsync -ab --suffix=".bak" <source>/ <destination>
并且rsync命令可以更灵活地处理这类事情。
另一答案
cp
命令中没有这样的选项。在这里,您需要创建一个shell脚本。首先在目标目录中执行ls
命令,并将输出存储在history.txt
等文件中。现在就在cp
命令执行grep
命令之前,该命令包含要在history file
中复制的文件,以检查该文件是否已在历史文件中可用。如果文件在目标目录中可用(即history file
中可用的文件),则首先使用todays datestamp备份目标目录中的文件,然后将相同的文件名从源复制到目标。
以上是关于通过命令行使用“复制”和“粘贴”时备份文件的主要内容,如果未能解决你的问题,请参考以下文章