从Windows迁移到Linux之后,我想找到Winmerge的替代软件,或者想学习命令行工具来比较和同步Linux上的两个文件夹。如果您能告诉我如何在命令行上执行以下任务,我将不胜感激...(我已经研究了diff和rsync,但是我仍然需要一些帮助。)
我们有两个文件夹:“ / home / user / A”和“ / home / user / B”
文件夹A是保存常规文件和文件夹的位置,文件夹B是充当文件夹A完整镜像的备份文件夹。(用户在文件夹B中没有直接保存或修改的内容。)
我的问题是:
如何列出仅存在于文件夹B中的文件?(例如,自上次同步以来从文件夹A中删除的文件。)
如何将仅存在于文件夹B中的文件复制回文件夹A中?
如何列出两个文件夹中都存在但具有不同时间戳或大小的文件?(自上次同步以来已在文件夹A中修改过的文件。我想避免使用校验和,因为有成千上万个文件,这会使处理速度太慢。)
如何将文件夹A的精确副本复制到文件夹B中?我的意思是,将文件夹A中的所有内容复制到仅存在于文件夹A中的文件夹B中,并将文件夹B中仅存在于文件夹B中的所有内容删除,但不要触摸两个文件夹中相同的文件。
这会将文件夹A放入文件夹B:
rsync -avu --delete "/home/user/A" "/home/user/B"
如果希望文件夹A和B的内容相同,则将其/home/user/A/
(带有斜线)作为源。这不占用文件夹A,而是所有内容,并将其放入文件夹B。像这样:
rsync -avu --delete "/home/user/A/" "/home/user/B"
-a
进行同步以保留所有文件系统属性-v
冗长地跑-u
仅复制修改时间较新的文件(如果时间相等,则复制大小不同的文件)--delete
删除目标文件夹中源文件中不存在的文件本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句