linux ls文件显示大小不准,find 命令-size条件 判断的文件大小不准确问题,显现如下...

问题出在之后的命令“ls -lh”。命令"find . -size -5k -exec ls -lh {} \;"中,“{}”的含义其实是对find命令执行的结果进行替换,而"find . -size -5k"这命令的实际执行结果是会把当前目录也列进去的,这 其实就相当于执行了两步。参考我自己的例子,第一步:~# find . -size -5k

.

./.config

./.config/ranger

./.config/ranger/tagged

./.config/ranger/bookmarks

./.config/ranger/history

./.lesshst

./.cache

./.cache/winetricks

./.bash_history

./.viminfo

第二步:~# ls -lh .

总用量 60K

-rw-r--r-- 1 root root 57K 6月  14 16:08 1.txt

看出问题了吗? 执行“ls -lh .” 实际上只是把当前目录里的所有文件都打印出来,而不管里面的内容有是多大。

所以正确的第二部其实应该是这样的:~# ls -dlh .

drwxr-x--- 4 root root 4.0K 6月  14 16:11 .

这样做的区别就在于,“ls -dlh”只要求ls命令打印目录自身,而不是显示该目录下的内容。请特别留意,目录本身其实是占4.0K大小的,这也就是为什么第一步用“find . -size -5k”正好会把当前目录给找出来,进而被“ls -lh”打印出里面的内容的原因了。课件中是“find /etc -size +20k -a -size -50k”,这个大小正好不会打印出目录类型,所以执行结果是歪打正着变成正确的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值