Linuxで大きなファイルを見つける方法
Linuxでハードドライブの整理をする際、スペースを空けるためやより整理された状態にするためには、どのファイルが最もストレージスペースを消費しているかを特定することが役立ちます。
このガイドでは、コマンドラインとGUIの方法を通じて、Linuxシステム上で最も大きなファイルを特定する方法を示します。また、個々のファイルではなく、重いディレクトリを特定したい場合は、フォルダーごとのディスク使用量の確認に関する他のガイドもご覧いただけます。
このチュートリアルでは、あなたは学びます:
- コマンドラインで
findを使用して大きなファイルを見つける方法 - QDirStatを使ってGUIで大きなファイルを見つける方法
Linuxで大きなファイルを見つける
コマンドラインを使用して大きなファイルを見つける方法
私たちが大きなファイルを見つけるために利用できる最良のLinuxコマンドは、findコマンドです。findにはファイルサイズに基づいてファイルを見つけるために使えるオプションがあります。いくつかの例を見てみましょう。
次の例では、現在の作業ディレクトリを.で表し、findを使用して検索します。もちろん、検索したい任意のディレクトリを指定することができ、findはあなたが求めるファイルを再帰的に検索します。
このコマンドは、サイズが100MBのファイルを探します。メガバイトを指定するために
Mを使用していることに注意してください。find . -size 100Mこのコマンドは、サイズが5GBを超えるファイルを探します。
+を使用して「超える」を指定し、Gを使ってギガバイトを表します。find . -size +5G特定のサイズ以下のファイルを検索するために、
-シンボルを使用することもできます。find . -size -5M「+」および「-」パラメータを組み合わせて、特定のサイズ範囲のファイルを検索できます。たとえば、2GBから5GBのファイルを探してみましょう。
find . -size +2G -size -5Gこのケースでの
findコマンドの一つの問題は、見つかったファイルのサイズを明らかにしないことです。次のコマンドを使用すると、findが私たちの条件に一致するファイルに出会ったときにlsコマンドを実行することができます。これにより、ファイルが2GBを超えるかどうかを探しながら、ファイルのサイズも表示されます。find . -size +2G -exec ls -sh1 {} + 8.2G ./AlmaLinux-8.3-beta-1-x86_64-dvd1.iso 4.5G ./CentOS-7-x86_64-DVD-2003.iso 7.7G ./CentOS-8.2.2004-x86_64-dvd1.iso 8.7G ./OracleLinux-R8-U3-x86_64-dvd.iso 4.1G ./Parrot-security-4.10_amd64.iso 2.6G ./deepin-desktop-community-1002-amd64.iso 3.7G ./kali-linux-2020.3-installer-amd64.iso 2.8G ./kali-linux-2020.4-live-i386.iso 2.4G ./kubuntu-20.04.1-desktop-amd64.iso 2.9G ./manjaro-kde-20.1.2-201019-linux58.iso 4.0G ./openSUSE-Leap-15.2-DVD-x86_64.iso 2.2G ./pop-os_20.04_amd64_intel_13.iso 6.7G ./rhel-8.0-x86_64-dvd.iso 2.6G ./slackware64-14.2-install-dvd.iso 2.6G ./ubuntu-20.04.1-desktop-amd64.iso 2.8G ./ubuntu-20.10-desktop-amd64.isoご覧のとおり、この出力は以前の例よりも大きなファイルを特定するのに非常に役立ちます。
前の例の問題の一つは、ファイルがサイズ順にソートされていないことです。返された結果が多いと、どれが最も大きいのかを見るのが難しいことがあります。そこで、
sortコマンドが役立ちます。-rオプションに注意してください。これを使うと、一番大きなファイルを上にリストするようになります。-hオプションは人間が読みやすい形式用であり、lsコマンドでも同じ-hオプションを使用する場合には必要です。find . -size +2G -exec ls -sh1 {} + | sort -r -h 8.7G ./OracleLinux-R8-U3-x86_64-dvd.iso 8.2G ./AlmaLinux-8.3-beta-1-x86_64-dvd1.iso 7.7G ./CentOS-8.2.2004-x86_64-dvd1.iso 6.7G ./rhel-8.0-x86_64-dvd.iso 4.5G ./CentOS-7-x86_64-DVD-2003.iso 4.1G ./Parrot-security-4.10_amd64.iso 4.0G ./openSUSE-Leap-15.2-DVD-x86_64.iso 3.7G ./kali-linux-2020.3-installer-amd64.iso 2.9G ./manjaro-kde-20.1.2-201019-linux58.iso 2.8G ./ubuntu-20.10-desktop-amd64.iso 2.8G ./kali-linux-2020.4-live-i386.iso 2.6G ./ubuntu-20.04.1-desktop-amd64.iso 2.6G ./slackware64-14.2-install-dvd.iso 2.6G ./deepin-desktop-community-1002-amd64.iso 2.4G ./kubuntu-20.04.1-desktop-amd64.iso 2.2G ./pop-os_20.04_amd64_intel_13.isoわかりましたが、それは非常に多くの結果ですね。もし、私たちがトップ3の最大ファイルだけを特定する必要があるとしたらどうしますか?その場合は、
headコマンドにパイプしましょう。find . -size +5G -exec ls -sh1 {} + | sort -r -h | head -3 8.7G ./OracleLinux-R8-U3-x86_64-dvd.iso 8.2G ./AlmaLinux-8.3-beta-1-x86_64-dvd1.iso 7.7G ./CentOS-8.2.2004-x86_64-dvd1.iso
それがすべてです。find コマンドを使用し、オプションとして sort および head コマンドを使うことで、ディレクトリ内またはシステム全体の最大のファイルを見つけるのに役立ちます。
GUIを使用して大きなファイルを見つける方法
時には、GUIユーティリティを使うとディスクの使用状況を視覚化する方が簡単です。そのようなアプリケーションはQDirStatと呼ばれますが、あなたのLinuxディストリビューションにデフォルトでインストールされていない可能性があります。以下の適切なコマンドを使用して、システムのパッケージマネージャーを使ってインストールしてください。
Ubuntu、Debian、およびLinux MintにQDirStatをインストールするには:
sudo apt install qdirstat
FedoraにQDirStatをインストールするには:
sudo dnf install qdirstat
Arch LinuxとManjaroにQDirStatをインストールするには:
git clone https://aur.archlinux.org/qdirstat.git
cd qdirstat
makepkg -si
もしQDirStatがあなたのディストリビューションのリポジトリから利用できない場合は、手動でダウンロードしてコンパイルする必要があるかもしれません。
git clone https://github.com/shundhammer/qdirstat.git
cd qdirstat
qmake
make
sudo make install
インストールが完了したら、アプリケーションを検索して開きます。
QDirStatを検索して開く
プログラムが開くと、スキャンしたいディレクトリを選択する必要があります。
大きなファイルをスキャンするディレクトリを選択してください
選択を行うとユーティリティがファイルをスキャンし始めます。コンテンツのスキャンが完了すると、ハードディスクスペースがさまざまなディレクトリやシステム上のファイルにどのように配分されているかの詳細なレポートが表示されます。サイズごとにディレクトリとファイルがリストアップされるため、どのファイルが最もディスクスペースを消費しているかを迅速に特定できます。
QDirStatを使用することで、どのディレクトリやファイルが最もディスクスペースを消費しているかを迅速に確認できます。
締めくくりの考え
このガイドでは、Linux上で大きなファイルを見つける方法を見ました。また、特定のサイズのファイルを検索する方法や、ファイルを大きいものから小さいものへと整理する方法も学びました。GUI(グラフィカルユーザーインターフェース)とコマンドラインの両方が、ストレージの使用状況の簡単な要約や、システム上のさまざまなファイルによるストレージスペースの使用状況の詳細な内訳を提供できます。


