从 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 中的所有内容,但不涉及两个文件夹中相同的文件。
我正在从surrey.ac.uk的UNIX 初学者教程中学习 unix 命令,在那里我发现了一种移动文件的奇怪方法。特别是,我在主目录中有文件夹 unixstuff,在 unixstuff 中有文件夹备份和文件 Caiti.txt 和 Caiti.bak。
根据上面的链接,要将 Caiti.bak 文件从 unixstuff 移动到备份,我必须确保当前目录是 unixstuff 并且我必须运行以下命令:
mv Caiti.bak backups/.
Run Code Online (Sandbox Code Playgroud)
请你解释一下这些/.
字符的含义吗?点表示当前目录(在本例中为 unixstuff)。如果我运行命令:
mv Caiti.bak backups
Run Code Online (Sandbox Code Playgroud)
无论如何它都有效。