是否有像 diff 这样的 Linux 工具可以递归比较文件和目录,但还增加了比较:扩展属性、acl、se 上下文?
在使用rsync -aHAX --delete
记住添加-n
和-i
标志之前,我已经这样做了。
这有点违反直觉,但请耐心等待。主要rsync
命令是将两个目录同步在一起所需的命令。但-n -i
导致它不同步(即做一个试运行),只是打印出它会做什么以及为什么。解析起来不是很好,但是您可以轻松获取文件名并通过管道传输到ls
或类似。
这将查看所有内容,包括 mtimes、日期等,并且不会跟踪设备节点、套接字、命名管道等。上面的命令行也查看 ACL 和扩展属性。您可以通过将选项更改为rsync
、将其限制为一台设备-x
、更改软链接和硬链接行为等来调整您正在查看的内容。
小智 2
亚诺斯已经说过要做什么:
find /a -exec stat -c '%A %C %F %g %u %s %Y %n' {} \; >a
find /b -exec stat -c '%A %C %F %g %u %s %Y %n' {} \; >b
diff -u a b
Run Code Online (Sandbox Code Playgroud)
并man 1 stat
说:
%A access rights in human readable form
%C SELinux security context string
%F file type
%g group ID of owner
%u user ID of owner
%s total size, in bytes
%Y time of last modification, seconds since Epoch
%n file name
Run Code Online (Sandbox Code Playgroud)
要比较文件内容,您可以使用:
find -type f -exec md5sum '{}' ';' | sort | uniq --all-repeated=separate -w 33 | cut -c 35-
as described here: http://www.commandlinefu.com/commands/view/3555/find-duplicate-files-based-on-size-first-then-md5-hash
Run Code Online (Sandbox Code Playgroud)