在复制IF内容时,覆盖文件不一样

use*_*265 16 linux deployment console copying mc

我从一边(A)有很多文件,在其他地方有很多其他文件(B)

我正在复制A到B,有很多文件是相同的,但内容可能会有所不同!

通常我使用mc(午夜指挥官)来做,并选择"覆盖不同大小".但是存在大小相同但内容不同的情况.在这种情况下,mc将文件保存在B位置而不是覆盖它.

在mc覆盖对话框中有一个工作"更新"我不知道它在做什么?在帮助中没有这样的信息,也许这是一个解决方案?

所以我正在搜索解决方案,它可以帮助我将所有文件从A复制到B并覆盖B位置的文件(如果它们存在且内容与A不同).

如果"B"位置的文件存在(同名)并且内容不同,则每次都必须通过"A"位置的文件覆盖.

你知道任何解决方案吗?

Did*_*set 18

您是否尝试过命令行:

cp -ru A/* B/
Run Code Online (Sandbox Code Playgroud)

应该递归地将所有已更改的文件(更新的时间戳)从目录A复制到目录B.

您也可以使用-a而不是-r在命令行中,具体取决于您要执行的操作.请参见cp手册页.


Grm*_*mbl 13

我使用,rsync因为这不会依赖文件日期,但实际上检查文件的内容是否已更改.例如:

#> rsync -cr <directory to copy FROM> <directory to copy TO>
Run Code Online (Sandbox Code Playgroud)

Rsync将文件复制到远程主机或从远程主机复制文件,或在当前主机上本地复制文件(它不支持在两个远程主机之间复制文件).

-c, --checksum    skip based on checksum, not mod-time & size
-r, --recursive   recurse into directories
Run Code Online (Sandbox Code Playgroud)

请参阅man rsync更多选项和详细信息.