GNU/Linux >> Linux の 問題 >  >> Linux

findおよびduコマンドを使用してLinuxで大きなファイルを検索する方法

Linuxコマンドfind およびdu 救助に来ます。

duコマンドの使用

du コマンドは、Linuxシステムでのファイルスペース使用量を見積もるために使用されます。ディスク使用量情報が表示されます。

duを使用しましょう / bootの内容を確認するには :

# du
0   ./efi/EFI/centos
0   ./efi/EFI
0   ./efi
2400    ./grub2/i386-pc
3176    ./grub2/locale
2504    ./grub2/fonts
8096    ./grub2
4   ./grub
250556  .

左端の値はディスク使用量であり、その後にその使用量を担当する特定のディレクトリが続きます。下の行は、 / boot /全体の概要です。 ディレクトリ。

重要なduのリストは次のとおりです オプション

  • -h -人間が読める形式 サイズ出力を人間が読める形式で印刷します。
  • -s -要約 -hと組み合わせることができます 人間が読める形式でディレクトリの使用状況の概要を取得します。
  • -a -すべて 指定されたファイルパス内のすべてのファイルとディレクトリのサイズを一覧表示します。 -hと組み合わせることができます

この場合、スペース使用量をファイルし、最初に最大のものを確認するために、 sortを使用してそれらを並べ替えることができます。 指図。結果を制限したい場合は、 head コマンドが便利になります

duで最大のファイルを取得する :

du -a / | sort -n -r | head -n 20

上記のコマンドはduを使用します ディスク使用量を取得するには、コンテンツをパイプで並べ替えると、headは最初の20個のアイテムのみを出力します。

出力:

# du -a / | sort -n -r | head -n 20

du: cannot access ‘/proc/20633/task/20633/fd/3’: No such file or directory
du: cannot access ‘/proc/20633/task/20633/fdinfo/3’: No such file or directory
du: cannot access ‘/proc/20633/fd/4’: No such file or directory
du: cannot access ‘/proc/20633/fdinfo/4’: No such file or directory
43855216    /
38679004    /var
38558036    /var/log
38486524    /var/log/asterisk
18136900    /var/log/asterisk/full.prod-asterisk
15786756    /var/log/asterisk/debug.prod-asterisk
2408012 /var/log/asterisk/cdr-custom
2105416 /usr
2101960 /var/log/asterisk/cdr-csv/Master.csv
2101960 /var/log/asterisk/cdr-csv
2074504 /var/log/asterisk/cdr-custom/Master.csv
1014364 /opt
1002432 /usr/lib
635300  /home/centos
635300  /home
634528  /home/centos/debug.prod-asterisk
490704  /tmp
480260  /tmp/pip.log
403512  /opt/instana/agent
403512  /opt/instana

多くの場合、大きなファイルのリストを取得する前に、いくつかのエラーが発生します。これは多くの場合、アクセスが許可されていないファイルまたはstderr出力のいずれかから発生します。 2> / dev / nullを使用します このコマンドのようなものを無視するには:

du -a / 2>/dev/null | sort -n -r | head -n 20

検索コマンドの使用

findを使用できます 検索でファイルのみを対象とし、それぞれのサイズを見つけてから、並べ替えとヘッドの組み合わせを使用してコンテンツを除外するコマンド。

例:

find / -type f -printf '%s %p\n' | sort -nr | head -10

上記のコマンドは、システム内のすべてのファイルを検索し、%sおよび%pを使用してサイズとパスを出力します。 ディレクティブ。次に、結果はパイプで並べ替えられ、最大から最小にフィルタリングされます。その後、ヘッドは10件の結果に制限されます。 -n 数値ソートおよび-r用です 並べ替えに渡されると、比較の結果が逆になります。

出力:

# find / -type f -printf '%s %p\n' | sort -nr | head -10
140737486266368 /proc/kcore
18595594900 /var/log/asterisk/full.prod-asterisk
16179399327 /var/log/asterisk/debug.prod-asterisk
2146986543 /var/log/asterisk/cdr-csv/Master.csv
2114553859 /var/log/asterisk/cdr-custom/Master.csv
649754355 /home/centos/debug.prod-asterisk
484122304 /tmp/pip.log
309011589 /var/log/asterisk/cdr-custom/Simple.csv
141488931 /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/lib/modules
106075056 /usr/lib/locale/locale-archive

結論

上記の説明から、Linuxで最大および最大のファイルとディレクトリを取得する方法を学びました。 sortの使い方も学びました 返された出力とheadを並べ替えるコマンド 結果を指定した数だけに制限するコマンド。

使用したコマンドの詳細を確認するには、manページを使用することを躊躇しないでください。次のコマンドを使用します:

man du  
man find  
man sort  
man head  
man tail

Linux
  1. LinuxでSUIDおよびSGID権限を持つファイルを検索する方法

  2. Linuxで検索および検索コマンドを使用してファイルを検索する

  3. Linuxの検索コマンド

  1. findコマンドを使用してLinux上のファイルとディレクトリを検索します

  2. Linux で空のディレクトリとファイルを見つけて削除する方法

  3. Linuxで.rbで終わるすべてのファイルを見つける方法は?

  1. Linuxで変更日時に基づいてファイルを検索およびソートする方法

  2. Linuxでfdコマンドを使用してファイルを検索する方法

  3. 「cp」および「mv」コマンドを使用してLinuxでファイルとディレクトリをコピー/移動する方法