同名文件夹文件大小差异

同名文件夹文件大小差异

两个不同的文件夹具有相同的名称,但文件大小不同。有没有什么linux命令可以比较两个文件夹并同时告诉我文件大小的差异?

答案1

bash斯蒂芬的回答的替代方案:

diff -u <(cd dir1 && du -a | sort -k2) <(cd dir2 && du -a | sort -k2)

这个和斯蒂芬的答案都假设你的文件名中没有换行符。

答案2

使用zshvim,您可以执行以下操作:

vim -d =(cd dir1 && du -a | sort -k2) =(cd dir2 && du -a | sort -k2)

(您可以替换vim -ddiff -ukompare或您喜欢的文本比较实用程序)。

命令替换的形式=(...)与 ksh、zsh 和 bash 中的形式相同,<(...)不同之处在于它使用临时文件而不是管道,以便它可以使用需要常规文件的命令(例如vim)。对于没有该限制的命令(例如diff),您可以使用<(...)

答案3

目录只是文件名和索引节点之间的映射,不存在“目录中的文件”。您可以通过命令询问可通过目录访问的文件的大小du(1))。如果您担心目录本身的大小(如 所报告的ls -ld directory),其中包括当前文件名、现在已删除文件使用的空间、填充和各种官僚机构。

如果您想知道可访问的文件是否具有相同的名称/内容,cmp(1)请比较两个文件。或者diff(1) (使用-r标志)递归地比较目录(不过,它适用于文本)。

相关内容