zoukankan      html  css  js  c++  java
  • Linux系统中如何查找大文件或目录文件夹的方法

    Linux系统中如何查找大文件或文件夹的方法

    在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或文件夹的方法。

    1: 如何查找大文件?
    其实很多时候,你需要了解当前系统下有哪些大文件,比如文件大小超过100M或1G(阀值视具体情况而定)。那么如何把这些大文件搜索出来呢?例如我要搜索当前目录下,超过100M大小的文件
    [root@VMhost ~]# cd /
    [root@VMhost /]# find . -type f -size +100M
    ./sys/devices/pci0000:00/0000:00:0f.0/resource1
    ./sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
    find: “./proc/2152/task/2152/fd/5”: 没有那个文件或目录
    find: “./proc/2152/task/2152/fdinfo/5”: 没有那个文件或目录
    find: “./proc/2152/fd/5”: 没有那个文件或目录
    find: “./proc/2152/fdinfo/5”: 没有那个文件或目录
    ./root/softpkg/jdk-8u40-linux-i586.rpm
    ./root/softpkg/jdk-8u211-linux-x64.rpm
    [root@VMhost /]#

    如上命令所示,我们仅仅能看到超过100M大小的文件的文件名称,但是对文件的信息(例如,文件大小、文件属性)一无所知,那么能否更详细显示一些文件属性或信息呢,当然可以,如下所示
    [root@VMhost /]# find . -type f -size +100M -print0 |xargs -0 ls -lh
    find: “./proc/2174/task/2174/fd/5”: 没有那个文件或目录
    find: “./proc/2174/task/2174/fdinfo/5”: 没有那个文件或目录
    find: “./proc/2174/fd/5”: 没有那个文件或目录
    find: “./proc/2174/fdinfo/5”: 没有那个文件或目录
    -rw-r--r-- 1 root root 172M 7月 4 23:00 ./root/softpkg/jdk-8u211-linux-x64.rpm
    -rw-r--r--. 1 root root 147M 4月 16 2015 ./root/softpkg/jdk-8u40-linux-i586.rpm
    -rw------- 1 root root 128M 7月 6 00:07 ./sys/devices/pci0000:00/0000:00:0f.0/resource1
    -rw------- 1 root root 128M 7月 6 00:07 ./sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
    [root@VMhost /]#

    当我们只需要查找超过100M大小文件,并显示查找出来文件的具体大小,可以使用下面命令
    [root@VMhost /]# find . -type f -size +100M -print0 |xargs -0 du -h
    find: “./proc/2183/task/2183/fd/5”: 没有那个文件或目录
    find: “./proc/2183/task/2183/fdinfo/5”: 没有那个文件或目录
    find: “./proc/2183/fd/5”: 没有那个文件或目录
    find: “./proc/2183/fdinfo/5”: 没有那个文件或目录
    0 ./sys/devices/pci0000:00/0000:00:0f.0/resource1
    0 ./sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
    147M ./root/softpkg/jdk-8u40-linux-i586.rpm
    172M ./root/softpkg/jdk-8u211-linux-x64.rpm

    如果你还需要对查找结果按照文件大小做一个排序,那么可以使用下面命令
    [root@VMhost /]# find . -type f -size +100M -print0 |xargs -0 du -h|sort -nr
    find: “./proc/2199/task/2199/fd/5”: 没有那个文件或目录
    find: “./proc/2199/task/2199/fdinfo/5”: 没有那个文件或目录
    find: “./proc/2199/fd/5”: 没有那个文件或目录
    find: “./proc/2199/fdinfo/5”: 没有那个文件或目录
    172M ./root/softpkg/jdk-8u211-linux-x64.rpm
    147M ./root/softpkg/jdk-8u40-linux-i586.rpm
    0 ./sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
    0 ./sys/devices/pci0000:00/0000:00:0f.0/resource1

    不过如上截图所示,有时候排列的顺序并不完全是按大小一致,这个是因为du命令的参数h所致,你可以统一使用使用MB来显示,这样就能解决这个问题。到这里,这个在Linux系统查找大文件的命令已经非常完美了,当然如果你还有很多的需求,那么可以在这个命令上做修改、调整.

    2: 如何查找Linux下的大目录大文件夹
    譬如有时候磁盘空间告警了,而你平时又疏于管理、监控文件的增长,那么我需要快速的了解哪些目录变得比较大,那么此时我们可以借助du命令来帮我们解决这个问题。

    [[root@VMhost /]# du -h --max-depth=1
    0 ./sys
    4.0K ./selinux
    2.6G ./usr
    0 ./net
    du: 无法访问"./proc/2225/task/2225/fd/4": 没有那个文件或目录
    du: 无法访问"./proc/2225/task/2225/fdinfo/4": 没有那个文件或目录
    du: 无法访问"./proc/2225/fd/4": 没有那个文件或目录
    du: 无法访问"./proc/2225/fdinfo/4": 没有那个文件或目录
    0 ./proc
    52K ./home
    4.0K ./cgroup
    176K ./dev
    16K ./lost+found
    28K ./tmp
    7.8M ./bin
    154M ./lib
    4.0K ./mnt
    4.0K ./srv
    85M ./var
    29M ./etc
    327M ./root
    0 ./misc
    15M ./sbin
    8.0K ./opt
    24M ./boot
    20K ./record
    4.0K ./media
    31M ./lib64
    3.2G .

    如果你想知道某个目录对于目录下面有哪些大文件夹,那么可以将参数max-depth=2 ,如果你想对搜索出来的结果进行排序,那么可以借助于sort命令。如下所示

    [root@VMhost /]# du -hm --max-depth=2 |sort -n
    du: 无法访问"./proc/2260/task/2260/fd/4": 没有那个文件或目录
    du: 无法访问"./proc/2260/task/2260/fdinfo/4": 没有那个文件或目录
    du: 无法访问"./proc/2260/fd/4": 没有那个文件或目录
    du: 无法访问"./proc/2260/fdinfo/4": 没有那个文件或目录
    。。。
    注意:
    [root@VMhost /]# du -hm --max-depth= 2 |sort -nr| head -10
    du: 目录最大深度"" 无效
    请尝试执行"du --help"来获取更多信息。
    head: 无法打开"12" 读取数据: 没有那个文件或目录
    --max-depth= 2 不能有空格!!
    [root@VMhost /]# du -hm --max-depth=2 |sort -n

    有时候搜索出来的结果太多了(譬如,我从根目录开始搜索),一直在刷屏,如果我只想查出最大的10个文件夹,怎么办呢?此时就要借助head命令来显示了
    [root@VMhost /]# du -hm --max-depth=2 |sort -nr| head -10
    du: 无法访问"./proc/2320/task/2320/fd/4": 没有那个文件或目录
    du: 无法访问"./proc/2320/task/2320/fdinfo/4": 没有那个文件或目录
    du: 无法访问"./proc/2320/fd/4": 没有那个文件或目录
    du: 无法访问"./proc/2320/fdinfo/4": 没有那个文件或目录
    3261 .
    2591 ./usr
    1083 ./usr/share
    665 ./usr/lib64
    399 ./usr/lib
    327 ./root/softpkg
    327 ./root
    185 ./usr/bin
    154 ./lib
    109 ./usr/include

  • 相关阅读:
    298. Binary Tree Longest Consecutive Sequence
    117. Populating Next Right Pointers in Each Node II
    116. Populating Next Right Pointers in Each Node
    163. Missing Ranges
    336. Palindrome Pairs
    727. Minimum Window Subsequence
    211. Add and Search Word
    年底购物狂欢,移动支付安全不容忽视
    成为程序员前需要做的10件事
    全球首推iOS应用防破解技术!
  • 原文地址:https://www.cnblogs.com/ITniu/p/11139981.html
Copyright © 2011-2022 走看看