linuxls⽂件显⽰⼤⼩不准,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:
看出问题了吗? 执⾏“ls -lh .” 实际上只是把当前⽬录⾥的所有⽂件都打印出来,⽽不管⾥⾯的内容有是多⼤。
所以正确的第⼆部其实应该是这样的:~# ls -dlh .
drwxr-x--- 4 root root 4.0K 6⽉ 14 16:11 .
linux查看当前文件夹内容这样做的区别就在于,“ls -dlh”只要求ls命令打印⽬录⾃⾝,⽽不是显⽰该⽬录下的内容。请特别留意,⽬录本⾝其实是占4.0K⼤⼩的,这也就是为什么第⼀步⽤“find . -size -5k”正好会把当前⽬录给出来,进⽽被“ls -lh”打印出⾥⾯的内容的原因了。课件中是“find /etc -size +20k -a -size -50k”,这个⼤⼩正好不会打印出⽬录类型,所以执⾏结果是歪打正着变成正确的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论