我的一个外部硬盘中有几个大文件夹“cosmo_sim_9”、“cosmo_sim_10”......,并且在另一个外部硬盘上有一个旧副本。
我想将旧目录与新目录同步(递归地),但不覆盖已经存在的文件(以节省时间)。
我怎样才能做到这一点?我的操作系统是 Fedora 20。
答案1
使用rsync
可以实现这一点。根据您拥有的系统类型,您需要下载它:
sudo yum install rsync
(基于转速)sudo apt-get install rsync
(基于 Debian)
然后使用它,这是您需要使用的命令:
rsync -a source destination
或者
rsync -r source destination
其中-r
代表递归复制数据(但在传输数据时不保留时间戳和权限。
-a
代表归档模式,归档模式允许递归复制文件,并且还保留符号链接、文件权限、用户和组所有权以及时间戳
答案2
使用rsync
:
rsync -a --ignore-existing cosmo_sim_9 /dest/disk/cosmo_sim_9
--ignore-existing
将导致它跳过目标上的现有文件,-a
将使其递归,如果可能的话保留权限/所有权/组/时间戳/链接/特殊设备。
您可以使用 bashfor
循环对所有目录执行此操作:
for dir in cosmo_sim_* ; do
rsync -a --ignore-existing "$dir" "/dest/disk/$dir"
done