Disk usage of files whose names match a regex, in Linux?

前端 未结 6 1630
耶瑟儿~
耶瑟儿~ 2020-12-23 21:19

So, in many situations I wanted a way to know how much of my disk space is used by what, so I know what to get rid of, convert to another format, store elsewhere (such as da

6条回答
  •  没有蜡笔的小新
    2020-12-23 22:08

    I suggest something like: find . -regex '.*\.bak' -print0 | du --files0-from=- -ch | tail -1

    Some notes:

    • The -print0 option for find and --files0-from for du are there to avoid issues with whitespace in file names
    • The regular expression is matched against the whole path, e.g. ./dir1/subdir2/file.bak, not just file.bak, so if you modify it, take that into account
    • I used h flag for du to produce a "human-readable" format but if you want to parse the output, you may be better off with k (always use kilobytes)
    • If you remove the tail command, you will additionally see the sizes of particular files and directories

    Sidenote: a nice GUI tool for finding out who ate your disk space is FileLight. It doesn't do regexes, but is very handy for finding big directories or files clogging your disk.

提交回复
热议问题