Linux 上でディスクを圧迫しているファイルを特定
はじめに
Linux 上でディスク容量がなくて要らないファイル消さなきゃ! ってときの個人的な対象ファイルの探し方。
ディレクトリの特定
必要があれば du
でディレクトリを特定します。-h
で K/M/G のような human-readable な表示にし、-d 1
で階層を指定します。
$ du -h -d 1
65M ./aaaa
3.1M ./bbbb
5.7G ./cccc
9.1M ./dddd
1.1M ./eeee
1.1M ./ffff
12M ./gggg
1.1M ./hhhh
363M ./iiii
18M ./jjjj
6.3G .
サイズの大きい & 要らなそうなファイル探し
サイズが大きくて要らなそうなファイルを探して消します。とりあえずファイルサイズが大きい順に表示して消せるファイルがないか確認します。
-
find . -size +10M
のようにして、指定サイズ以上のファイルを表示 -
xargs ls -lh --color
でファイルの詳細を表示しつつ色付け -
sort -k 5 -nr
で、ファイルサイズで降順ソート
$ find . -size +10M | xargs ls -lh | sort -k 5 -nr
-rwxr-xr-x 1 foo foo 523M 6月 21 20:08 ./hotspot/variant-server/libjvm/gtest/libjvm.so
-rwxr-xr-x 1 foo foo 449M 6月 21 20:17 ./images/jdk/lib/server/libjvm.debuginfo
-rwxr-xr-x 1 foo foo 449M 6月 21 20:08 ./support/modules_libs/java.base/server/libjvm.debuginfo
-rw-r--r-- 1 foo foo 218M 6月 21 19:46 ./hotspot/variant-server/libjvm/objs/precompiled/precompiled.hpp.gch
-rw-r--r-- 1 foo foo 218M 6月 21 19:46 ./hotspot/variant-server/libjvm/gtest/objs/precompiled/precompiled.hpp.gch
-rw-r--r-- 1 foo foo 135M 6月 21 20:17 ./images/jdk/lib/modules
-rw-r--r-- 1 foo foo 56M 6月 21 20:17 ./images/jdk/lib/src.zip
-rw-r--r-- 1 foo foo 56M 6月 21 20:16 ./support/src.zip
-rw-r--r-- 1 foo foo 25M 6月 21 20:16 ./support/interim-image/lib/modules
-rwxr-xr-x 1 foo foo 22M 6月 21 20:08 ./support/modules_libs/java.base/server/libjvm.so
-rwxr-xr-x 1 foo foo 22M 6月 21 20:08 ./jdk/lib/server/libjvm.so
-rw-r--r-- 1 foo foo 22M 6月 21 20:17 ./images/jdk/lib/server/libjvm.so
-rw-r--r-- 1 foo foo 22M 6月 21 20:16 ./support/interim-image/lib/server/libjvm.so
-rw-r--r-- 1 foo foo 20M 6月 21 20:17 ./images/jmods/java.base.jmod
-rw-r--r-- 1 foo foo 20M 6月 21 20:17 ./images/jdk/jmods/java.base.jmod
-rw-r--r-- 1 foo foo 20M 6月 21 20:15 ./support/interim-jmods/java.base.jmod
-rwxr-xr-x 1 foo foo 18M 6月 21 20:17 ./images/jdk/lib/libfontmanager.debuginfo
-rwxr-xr-x 1 foo foo 18M 6月 21 20:11 ./support/modules_libs/java.desktop/libfontmanager.debuginfo
-rw-r--r-- 1 foo foo 18M 6月 21 19:47 ./hotspot/variant-server/libjvm/objs/ad_x86.o
-r--r--r-- 1 foo foo 18M 6月 21 19:45 ./configure-support/classes.jsa
-rw-r--r-- 1 foo foo 13M 6月 21 20:17 ./images/jdk/jmods/java.desktop.jmod
-rw-r--r-- 1 foo foo 13M 6月 21 20:15 ./images/jmods/java.desktop.jmod
ファイル名だけだと「これ何のファイルだっけ?」となる場合、ファイルタイプの情報を表示します。
-
find . -size +10M
のようにして、指定サイズ以上のファイルを表示 -
file
コマンドでファイルタイプ情報の表示
$ find . -size +10M | xargs file
./configure-support/classes.jsa: data
./support/src.zip: Zip archive data, at least v2.0 to extract
./support/interim-image/lib/modules: data
./support/interim-image/lib/server/libjvm.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=b0eeb74ffe2494e0aec4b6b52e4a17c67ad2a750, not stripped
./support/modules_libs/java.desktop/libfontmanager.debuginfo: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=05f21942ca65ba8aed6520f8a5641e83a78b0a01, with debug_info, not stripped
./support/modules_libs/java.base/server/libjvm.debuginfo: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=b0eeb74ffe2494e0aec4b6b52e4a17c67ad2a750, with debug_info, not stripped
./support/modules_libs/java.base/server/libjvm.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=b0eeb74ffe2494e0aec4b6b52e4a17c67ad2a750, not stripped
./support/interim-jmods/java.base.jmod: data
./images/jmods/java.desktop.jmod: data
./images/jmods/java.base.jmod: data
./images/jdk/jmods/java.desktop.jmod: data
./images/jdk/jmods/java.base.jmod: data
./images/jdk/lib/modules: data
./images/jdk/lib/server/libjvm.debuginfo: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=b0eeb74ffe2494e0aec4b6b52e4a17c67ad2a750, with debug_info, not stripped
./images/jdk/lib/server/libjvm.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=b0eeb74ffe2494e0aec4b6b52e4a17c67ad2a750, not stripped
./images/jdk/lib/src.zip: Zip archive data, at least v2.0 to extract
./images/jdk/lib/libfontmanager.debuginfo: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=05f21942ca65ba8aed6520f8a5641e83a78b0a01, with debug_info, not stripped
./jdk/lib/server/libjvm.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=b0eeb74ffe2494e0aec4b6b52e4a17c67ad2a750, not stripped
./hotspot/variant-server/libjvm/objs/precompiled/precompiled.hpp.gch: GCC precompiled header (version 014) for C++
./hotspot/variant-server/libjvm/objs/ad_x86.o: ELF 64-bit LSB relocatable, x86-64, version 1 (GNU/Linux), with debug_info, not stripped
./hotspot/variant-server/libjvm/gtest/libjvm.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=cdb3e993a680d73ac0b66f6f03edc108b46b4c53, with debug_info, not stripped
ファイルサイズ降順でファイルを表示し、かつファイルタイプを表示しつつ LS_COLORS に基づいて色を付けたい(上記を両方行いたい)場合、シェルスクリプトでやるとしんどいので適当に作ったツールを使っています。
https://github.com/chgzm/fsrank
オプションで、表示するファイル数とディレクトリが指定できます。
$ ./fsrank [-n num] [directory]
ファイルを特定したら、あとは消すなり圧縮するなりします。
まとめ
Linux 上でディスク容量を圧迫するファイルの特定についてでした。
Author And Source
この問題について(Linux 上でディスクを圧迫しているファイルを特定), 我々は、より多くの情報をここで見つけました https://qiita.com/chgzm/items/e0d7cc3f4e757284fea0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .