刚用 CentOS 的新手,是不是对着一堆文件想知道多大,敲了命令却看不懂结果?ls 命令显示的数字不知道是 KB 还是 MB,du 命令输完滚出一堆字,根本找不到自己要的文件大小?小编前阵子帮朋友处理服务器,他就盯着屏幕问 “这 1024 到底是多大啊”,其实啊,查看文件大小就两个核心命令 ——du 和 ls,就是用法有点讲究,不同版本还稍有区别。今天就把这俩命令咋用、大文件怎么快速找、CentOS 6 和 7 有啥不一样,全说明白,新手跟着敲几遍,保管能学会。
一、先学 du 命令:看文件夹和大文件,这个最常用
du 命令就像 “文件大小测量仪”,能看单个文件、整个文件夹的大小,新手先记这几个基础用法:
- 看单个文件大小:输 “du -h 文件名”,比如 “du -h test.txt”,会显示 “2.5M test.txt”,“-h” 是人性化显示,直接给 MB、GB 单位,不用自己算。小编第一次用没加 – h,显示 “2560 test.txt”,还以为是 2560MB,其实是 KB,闹了笑话。
- 看文件夹总大小:输 “du -sh 文件夹名”,比如 “du -sh /home”,“-s” 是只看总大小,“-h” 还是人性化单位,结果会显示 “10G /home”,不用看里面的子文件,省事。
- 看文件夹里所有文件大小:输 “du -h 文件夹名”,比如 “du -h /var/log”,会列出文件夹里每个文件和子文件夹的大小,从上到下排列,最后一行是总大小。
有个用户分享过,他用 du 命令时没加文件名,结果把整个根目录的大小都列出来了,滚了好几屏才停,所以啊,记得指定具体文件或文件夹,别瞎敲。
二、再学 ls 命令:快速看单个文件,适合临时查看
ls 命令平时用来列文件,加个参数就能看大小,适合快速瞥一眼:
- 基础用法:输 “ls -l 文件名”,比如 “ls -l abc.tar”,结果里有一列数字,比如 “1024000”,默认单位是字节,换算成 MB 得除以 1024(1024000 字节≈1MB)。新手可能嫌麻烦,那就加 “-h”:“ls -lh abc.tar”,直接显示 “1.0M abc.tar”,清楚多了。
- 看当前目录所有文件大小:输 “ls -lh”,会列出当前目录所有文件的大小,带单位,一眼能看出哪个大哪个小。小编习惯用这个,找临时文件时特方便,不用记复杂参数。
不过 ls 有个小缺点 —— 看文件夹大小时,显示的是 “4.0K”,这不是实际大小,是文件夹本身的元数据大小,想看真实内容大小还得用 du 命令。朋友第一次用 ls 看文件夹,还以为就 4KB,结果用 du 一看有 2G,吓了一跳。
三、大文件筛选:找 10G 以上的文件,不用一个个看
服务器磁盘满了,想删大文件又找不到在哪?用这两个命令组合,一秒定位最大的文件:
- 找当前目录及子目录里最大的 10 个文件:输 “du -ah . | sort -rh | head -n 10”。“du -ah .” 是列出所有文件大小(包括隐藏文件),“sort -rh” 是从大到小排序,“head -n 10” 是只显示前 10 个。小编在服务器上试过,一下就找出了那个占了 20G 的日志文件。
- 只看单个目录里的大文件:输 “ls -lh | grep -E ‘G|T’”,能筛选出大小是 GB 或 TB 的文件,不用在一堆 KB 文件里翻。比如日志文件夹里输这个,直接显示哪些日志文件超过 1G 了。
提醒一句,筛选大文件时,要是目录里文件太多,命令可能跑几秒才出结果,别以为卡住了,耐心等会儿。
四、CentOS 6 和 7 的小差异:命令差不多,显示稍有不同
用惯了 CentOS 7 的人,突然用 6 可能会懵,其实就两点不一样:
命令 / 场景 | CentOS 6 | CentOS 7 |
---|---|---|
du 命令 “–max-depth” 参数 | 支持,比如 “du -h –max-depth=1” 只看一级子目录 | 同样支持,但部分版本显示更简洁 |
ls 命令 “-h” 单位显示 | 会显示 “K”“M”“G”,但小数点后保留一位(如 1.5G) | 可能保留两位(如 1.50G),更精确点 |
大文件筛选 “sort” 命令 | 部分老版本不支持 “-h” 参数,得先换算成字节再排序 | 完美支持 “-h”,直接按人类可读单位排序 |
小编在 CentOS 6 上试过 “sort -rh”,结果报错 “无效选项”,后来才知道得用 “sort -nr”(按数字排序),再自己换算单位,稍微麻烦点,但也能凑合用。
五、自问自答:新手最容易懵的 3 个问题
问:为啥输 “du -h” 显示的大小和实际占用磁盘不一样?答:因为文件可能有硬链接,或者磁盘有块对齐,显示的 “大小” 和 “占用空间” 会差一点,不用纠结,看 “du -h” 的结果就行,够用了。
问:权限不够,du 命令显示 “无法访问” 咋办?
答:在命令前加 “sudo”,比如 “sudo du -h /root”,获取管理员权限就能看了。朋友之前看 root 目录下的文件,没加 sudo,结果一堆 “权限不够”,加上就好了。
问:能不能让命令只显示 GB 单位的文件?
答:能!输 “du -h | grep ‘G’”,就只列出大小是 GB 的文件,KB、MB 的都过滤掉,找大文件时特方便。
六、小编的实在建议
新手学查看文件大小,先把 “du -h 文件名” 和 “ls -lh 文件名” 练熟,这俩最常用。大文件筛选命令不用死记,存到记事本里,用的时候复制粘贴就行。CentOS 6 和 7 差异不大,遇到报错先看看是不是参数错了,老版本少用 “–” 开头的长参数,用短参数更稳妥。
其实啊,命令这东西,光看没用,得实际敲几遍。小编刚开始对着教程敲,敲错三次才出结果,多练两次就顺了。你要是哪步卡住了,把命令和报错发出来,咱一起看看咋回事~