我如何检查linux中的两个文件夹是否相同

Pbe*_*rne 14 linux web

我已经将一个网站从一个服务器移动到另一个服务器,我使用SCP复制了这些文件

我现在想检查所有文件是否已被复制好.

我如何比较网站?

计算文件夹的文件?

获取文件夹树的总文件大小?

或者有更好的方法来比较网站?

保罗

pha*_*yes 36

使用带有递归-r和快速-q选项的diff .这是最好的,也是迄今为止最快的方法.

diff -r -q /path/to/dir1 /path/to/dir2
Run Code Online (Sandbox Code Playgroud)

它不会告诉你差异是什么(删除-q选项以查看),但它会很快告诉你所有文件是否相同.

如果它没有显示输出,则所有文件都相同,否则它将列出不同的文件.


Pau*_*xon 10

如果你使用scp,你可能已经使用过rsync.

rsync不会传输已经是最新的文件,因此您可以通过再次运行rsync来验证副本是否是最新的.

如果您在旧主机上执行此类操作:

scp -r from/my/dir newhost:/to/new/dir
Run Code Online (Sandbox Code Playgroud)

然后你可以做类似的事情

rsync -a --progress from/my/dir newhost:/to/new/dir
Run Code Online (Sandbox Code Playgroud)

'-a'是'archive'的缩写,它执行递归复制并保留权限,所有权等.查看手册页以获取更多信息,因为它可以做很多聪明的事情.


Dou*_*der 8

cd website
find . -type f -print | sort | xargs sha1sum
Run Code Online (Sandbox Code Playgroud)

将生成文件的校验和列表.然后,您可以diff查看是否有任何丢失/添加/不同的文件.


Ein*_*eki 5

也许你可以使用类似的东西:

find <original root dir> | xargs md5sum  > original
find <new root dir> | xargs md5sum  > new
diff original new
Run Code Online (Sandbox Code Playgroud)