工作场景,现在我需要对比同事的一个目录下的文件,与我的目录下的文件数量是否相同,如果数量相同的话,文件是否相同。
如何对比文件数目
如上图所示,我以列表详细用ls -al列出了所有文件(包括隐藏文件)
如果文件很多,则用wc命令 和 grep 命令进行过滤。
wc命令显示输出的行 列 字符数,-l表示仅列出行、-w表示仅列出多少字、-m表示仅列出多少字符;
grep用于过滤输出信息,不做详细介绍
分别代表行、列、字
我们关注行即可。
参考文章:1
比较两个文件夹是否相同
1、比较文件夹diff,可以直接使用diff命令
[root@~]# diff -urNa dir1 dir2
-a Treat all files as text and compare them line-by-line, even if they do not seem to be text.
-N, --new-file
In directory comparison, if a file is found in only one directory, treat it as present but empty in the other directory.
-r When comparing directories, recursively compare any subdirectories found.
-u Use the unified output format.
下图是最简单的只比较文件名字。
查看文件大小并排序文件大小
有时候,我们希望能够以MB、GB、KB、TB这种人性化的方式显示文件大小,为此总结出以下的相关cmd。
- 1、对当前目录下的所有目录和文件的大小汇总:
du -sh .
- 对当前目录下每一个目录和文件的大小分别进行汇总:
du -sh *
-
对指定的目录进行大小汇总
-
对指定目录的文件夹里面所有子目录和文件的大小进行分别汇总
-
对当前目录下所有的目录和文件分别进行汇总,并使用“grep [M]” 筛选出所有大小为M级别的目录和文件。
grep通过带 -E选项可以grep出带有M or K的显示信息
-E选项代表开启正则表达式。
注意的是如果我想要有1且有K的,并不是&,而是使用.
如下图,是对含有M和K的进行大小排序,但是我们发现sort不认小数,不认单位。以下做法是不可行的。原因是因为我们加了-h。因此如果我们要按照大小进行排序的话不能加-h
但是,真的没办法了吗?网上没有找到答案,问了后才知道,后面也加上-h的选项即可。如下是按照从小到大排序,如果按照从大到小排序,-hr
即可
以下是-h
的含义